[英]angularjs directive slow dom manipulation
我有一個指令,需要訪問其中的元素的寬度。 我遇到的問題是寬度包含由angular編譯的動態文本,並且角度指令似乎至少需要35毫秒才能實際編譯內部鏈接函數。 結果,我添加了一個setTimeout-to-zero函數,但是感覺很臟。 我是否缺少某些東西,或者這僅僅是一個angularjs錯誤? 這是代碼。
Javascript:
angular.module('myApp', [])
.directive('myDir', MyDirective);
function MyDirective() {
return {
restrict: 'E',
scope: {
mytext : '@'
},
template: '<span>{{mytext}}</span>',
link: function(scope, elem, attr) {
console.log(Date.now(), elem.text());
setTimeout(function() {
console.log(Date.now(), elem.text());
}, 0);
}
}
}
HTML:
<div ng-app="myApp">
<my-dir mytext="Hello"></my-dir>
</div>
這是控制台結果的示例:
1438529990502 "{{mytext}}"
1438529990523 "Hello"
您可以在此處進行演示: https : //jsfiddle.net/38m6hxk6/15/
您是對的,因為您需要超時,但是應該使用角度$ timeout。 它將等待angular完成最新的摘要循環。 您可以在文檔中閱讀有關內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.