我有下一个代码:
<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();
});
}
}
});
它有效,但它会禁用页面上的所有元素,我只需要当前。我应该改进什么?
答案 0 :(得分:5)
您需要为指令创建新范围:
scope: true
使用scope.isDisabled = true
,您可以指示创建一个新的子范围(从原始范围继承原型)。在这种情况下, .container {
width: 100%;
height: auto;
}
.top {
position: fixed;
height: auto;
width: 100%;
background-color: black;
color: white;
top: 0;
}
.bottom {
height: auto;
width: 100%;
}
只会改变本地子标志。