我想更好地理解AngularJS如何編譯指令並更新視圖。AngularJS如何編譯指令?
這是我的具體問題。我有一個指令,像這樣:
angular.module('directives', [])
.directive('test', function() {
return {
restrict: 'AE',
scope : { foo : '=' },
template: '<div id={{foo.id}}>{{foo.data}}</div>'
link: function(scope, element, attrs) {
document.getElementById(scope.foo.id); /*1*/
}
}
});
在點1 scope.foo.id
爲defined
。但是,該指令的模板尚未編譯,因此div ID未設置,並且getElementById
返回null
。一旦頁面完全呈現,並且我查看編譯後的模板,所有模板ID都已成功設置爲foo.id
我在這裏丟失了什麼?
重要的是要注意,對於我的特殊情況,我需要通過它的id明確地與模板div
進行交互。
編輯:增加了一個小提琴:http://jsfiddle.net/6c4nb/8/
問題,它說你需要與模板互動,你想用這個模板做的任何細節? – Pete
我試圖初始化一個插件,明確需要傳入元素ID的元素。 – Dan
你可以把它扔進小提琴嗎?如果沒有html和完整的js,你很難完全理解你在做什麼。 –