我正在尝试在指令中实现“一次性绑定”,不幸的是它不起作用。
我寻找类似的问题,但解决方案似乎没有。
首先,我尝试使用属性进行一次性绑定,我在控制器内更改了它的值,并在html上放置了{{:: name}}文本。
工作得很好,但此刻我开始更改指令中的'name'值 - 它在所有指令中都发生了变化,并忽略了一次性绑定。
任何帮助?
JS:
.directive('smallCard', function(CONSTS){
return{
restrict: 'E',
replace: true,
template: '<div>{{::name}}</div>',
//templateUrl: 'small-card.html',
link: function(scope, elem, attrs) {
scope.name++;
}
}
})
HTML:
<md-card-actions layout="row" layout-align="start center">
<md-button>create {{::name}}</md-button>
</md-card-actions>
答案: 最终解决方案是制作一个隔离范围,只需在指令中添加“scope:{}”就可以解决问题:
.directive('smallCard', function(CONSTS){
return{
restrict: 'E',
replace: true,
**scope:{},**
template: '<div>{{::name}}</div>',
//templateUrl: 'small-card.html',
link: function(scope, elem, attrs) {
scope.name++;
}
}
})