在指令中一次绑定

时间:2016-06-12 11:39:13

标签: angularjs binding directive one-time-binding

我正在尝试在指令中实现“一次性绑定”,不幸的是它不起作用。

我寻找类似的问题,但解决方案似乎没有。

首先,我尝试使用属性进行一次性绑定,我在控制器内更改了它的值,并在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++;
    }
}

})

0 个答案:

没有答案