gpt4 book ai didi

AngularJS ng-disable 关闭所有元素

转载 作者:行者123 更新时间:2023-12-03 00:01:16 30 4
gpt4 key购买 nike

我有下一个代码:

<body ng-app="vote">
<div>
<div class="vote">
<button ng-disabled="this.isDisabled" voteplus>+</button>
</div>
<div class="vote">
<button ng-disabled="isDisabled" voteplus>+</button>
</div>
<div class="vote">
<button ng-disabled="isDisabled" voteplus>+</button>
</div>
<div class="vote">
<button ng-disabled="isDisabled" voteplus>+</button>
</div>
<div class="vote">
<button ng-disabled="isDisabled" voteplus>+</button>
</div>
</div>
</body>

和指令:

angular.module('vote', [])

.directive('voteplus', function() {
return {
link: function(scope, element, attrs) {
element.bind('click', function(e){
scope.isDisabled = true;
scope.$apply();
});
}
}
});

它可以工作,但它会禁用页面上的所有元素,我只需要当前元素。我应该改进什么?

最佳答案

您需要为指令创建新范围:

.directive('voteplus', function() {
return {
scope: true, // <-- add this
link: function(scope, element, attrs) {
element.bind('click', function(e){
scope.isDisabled = true;
scope.$apply();
});
}
}
});

使用 scope: true 您告诉指令创建一个新的子作用域(其原型(prototype)继承自基本作用域)。在这种情况下,scope.isDisabled = true只会更改本地子标志。

关于AngularJS ng-disable 关闭所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713256/

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