我的问题在下面的plnkr
中得到了证明 <ntimes repeat=10 >
<h1>Hello World - 10 {{smsg}}</h1>
<h4>More text</h4>
</ntimes>
指令:
directive('ntimes', function() {
return {
restrict: 'E',
scope:{
smsg: '='
},
compile: function(tElement, attrs) {
var content = tElement.children();
for (var i = 0; i < attrs.repeat - 1; i++) {
tElement.append(content.clone());
}
tElement.replaceWith(tElement.children());
return function(scope,elem,attr){
scope.smsg='abc';
}
}
}
})
我有一个返回链接函数的编译函数,并且指令范围是隔离的。当我在链接函数中更新范围变量时,页面不会呈现更新的值。我期待看到abc而不是xyz。
请帮忙
答案 0 :(得分:0)
使用双向数据绑定时,必须确保变量连接正确。
这意味着在你的指令中,你声明smsg范围变量将与将在DOM中声明的其他东西进行双向数据绑定。
现在看看DOM这个&#34;链接&#34;缺少哪个为您提供此错误。要解决此问题,您必须将您的html更改为此<ntimes smsg="smsg" repeat=10 >
当你做新的smsg将等于&#39; abc&#39;。