我创建了一个指令,它有一个隔离范围:
.directive('title',function(){
return {
restrict:'E',
scope:{
text:'@'
},
replace:true,
template:'<div>{{text}}</div>',
link:function(scope,iElement,iAttrs){
}
};
})
当我尝试按"text"
方法更改.attr
属性时,绑定不起作用。我尝试使用$apply
方法,但没有任何成功。
有什么问题?
PS:请不要建议使用控制器并将text
属性绑定到$scope
的属性(类似于<title text="{{somepropertyincontrollersscope}}">...
)的任何解决方案。我的问题是仅与更改属性外部相关。
答案 0 :(得分:1)
我认为您必须通过观察属性的值在link
函数中执行此操作:
scope.$watch(function () {
return iElement.attr("text");
}, function (newVal) {
scope.text = newVal;
});
这是一个updated fiddle。