0

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

我寻找了类似的问题,但解决方案似乎并不成立。

首先,我尝试一次性绑定一个属性,我在控制器内部更改了它的值,并在 html 上放置 {{::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>

答:最终解决方案是创建一个隔离范围,只需在指令中添加“范围:{}”即可解决问题:

.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++;
    }
}

})

4

0 回答 0