gpt4 book ai didi

javascript - 自定义指令内 ngInit 的替代方案

转载 作者:行者123 更新时间:2023-12-03 08:27:07 25 4
gpt4 key购买 nike

假设我有一个简单的指令:

angular.module('app').directive('myDir', myDir);

function myDir() {

var directive = {
bindToController: true,
controller: null,
controllerAs: 'vm',
template: '<button ng-click="vm.myDirVar = 1">',
scope: {
myDirVar: '='
}
};

return directive;

}

如果在下面的示例中,vm.var未定义,我的指令不会将其绑定(bind)到隔离范围。

<my-dir my-dir-var="vm.var"></my-dir>

因此,为了使其正常工作,我使用 ng-init 来设置 vm.var 的默认值,然后绑定(bind)到隔离范围有效。

<my-dir my-dir-var="vm.var" ng-init="vm.var = var || 0"></my-dir>

问题是,如何改进我的指令,以便摆脱 ng-initvm.var 仍然具有约束力,即使它是 未定义最初。

最佳答案

你可以这样做:

 var directive = {
bindToController: true,
controller: function(){
this.myDirVar = this.myDirVar || 0;
},
controllerAs: 'vm',
template: '<button ng-click="vm.myDirVar = 1">',
scope: {
myDirVar: '='
}
};

如果 Controller 没有问题。

关于javascript - 自定义指令内 ngInit 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com