AngularJS ng-disable关闭所有元素

时间:2016-08-02 06:34:16

标签: angularjs angularjs-directive

我有下一个代码:

<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();
            });
        }
    }
});

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

1 个答案:

答案 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%; }只会改变本地子标志。