Mam problem z dyrektywą iframe, którą próbuję zaimplementować.Angular: błąd atrybutu src w dyrektywie Iframe
Jak daleko jestem: Szablon:
<div class="externalIframe" iframe-src="external.html"></div>
dyrektywa:
angular.module('project.directives', [])
.directive('externalIframe', ['$rootScope', function($rootScope) {
return {
restrict: 'C',
replace: true,
transclude: true,
scope: {
src: '@iframeSrc', // the src uses the data-binding from the parent scope
},
template: '<iframe src="{{src}}" height="100%" width="100%" frameborder="0"></iframe>',
link: function(scope, elem, attrs) {
//elem.src = "dummy.html"; // not working either
}
}
}])
Problem: Strzela 2 żądania HTTP (2 iframe ładowanie). :
- jeden do
http://localhost:8000/app/{{src}}
(iframe src jeszcze interpreated przez kanciasty) - jeden do
http://localhost:8000/app/external.html
(iframe src raz interpreated przez kanciasty)
Chcę uniknąć niepotrzebnego pierwsze połączenie .. Jak czy mogę to zrobić ?
Próbowałem bez src w szablonie i programowo ustawiłem go w funkcji łącza lub kompilacji, ale to nie uruchamia ładowania elementu iframe.
edit: jsFiddle dodany do demo błędów metodą kompilacji => zobaczysz na karcie sieciowej Firebug/Chrome panelu dev że dwa żądania są wykonane:
http://fiddle.jshell.net/_display/%7B%7Bsrc%7D%7D
http://fiddle.jshell.net/_display/external.html
Dzięki za pomoc
Oczywiście, możesz to zrobić, ale to nie rozwiązało wspomnianego problemu –
Czy możesz mi wyjaśnić: co przegapiłem? Jeśli chcesz mieć dyrektywę z ramką iframe, nadal możesz używać ng-src? – markmarijnissen
Używanie ng-src działało jak czar i sprawiło, że dwa błędy HTTP od początku zniknęły. Myślę, że odpowiedź idealnie odpowiada pytanie: –