Я вставляю src
атлет для <iframe>
с помощью AngularJS.Контроллер, возвращающий значение несколько раз
По какой-то причине, всякий раз, когда я называю захватом этого значения, он возвращается несколько раз. Я знаю это, потому что я проверял использование console.log(src)
для отладки, прежде чем я получил решение.
Этот незначительный глюк, похоже, не вызывает никаких ошибок (или замедляет мое приложение), но мне любопытно узнать, что происходит?
Update
Я уменьшил код в моем контроллере, перемещая большую часть работы моей службы пользовательских recentStations
(доступно в случае необходимости).
Результат в виде HTML все тот же, что и поведение при возврате нескольких результатов.
Контроллер
app.controller('contentCtrl', ['$scope', 'recentStations', function($scope, recentStations){
$scope.getCurrentSrc = function(){
return recentStations.getCurrentSrc();
};
}]);
HTML
<div id="content" data-ng-controller="contentCtrl">
<iframe data-ng-src="{{ getCurrentSrc() }}" seamless></iframe>
</div>
$ sce может вызвать это. Что происходит внутри trustAsResourceUrl? – schlingel
Похоже, что запутанным является то, что 'scope.getCurrentSrc' вызывается несколько раз. Я ожидаю, что он будет вызываться один раз за цикл '$ digest', который будет несколько раз при загрузке, плюс снова каждый раз, когда Angular решит, что произошло что-то интересное. – DRobinson
Вы можете получить подсказку http://stackoverflow.com/questions/14973792/why-angularjs-will-invoke-function-name-twice – Vineet