我想更好地理解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,你很难完全理解你在做什么。 –