3
我的目標是更新用於圖像容器的div元素(其寬度和高度)。問題在於視圖和控制器被調用的速度要快得多,然後圖像被加載,並且當它最終被調用時,視圖已經被渲染,我不能再設置寬度和高度。也許我的做法是完全錯誤的......也許我應該用別的東西去......這是我的測試代碼,您可以檢查並明白我想做的事:使用Angular JS加載圖像後更新DIV元素
<div ng-controller="c">
<div id={{my_id}} width={{widthOfOutsideWrapper}} height={{heightOfOutsideWrapper}}>
<img ng-src="{{src}}" imageonload />
</div>
</div>
....
app.controller('c', function($scope) {
$scope.src ="https://www.google.com.ua/images/srpr/logo4w.png";
});
...
app.directive('imageonload', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('load', function() {
alert('image is loaded');
scope.widthOfOutsideWrapper= this.width;
scope.heightOfOutsideWrapper= this.height;
scope.my_id = "testing";
});
}
};
});
這裏的jsfiddle:
http://jsfiddle.net/2CsfZ/855/
Btw。啓動時,我只在頁面上添加一次圖像。
正確答案,但有點短。嘗試充實一點,並說明爲什麼'$ apply()'在這裏需要一些描述。 – Duncan
感謝您的回答! – pawelforums
@pawelforums請問,你能接受答案嗎? –