0

如果我的范围内的值为“真”,我会使用角度并尝试禁用按钮。我看到ng-disabled这似乎是完美的,但我不知道为什么它不起作用......

这是我的 HTML:

<div ng-controller="MyCtrl">
        <h4>{{ building.isBuildable }}</h4>
        <button ng-click='build(building.id)' 
                class="btn btn-primary" 
                ng-disabled="!build.isBuildable">
       Build
       </button>
</div>

我的角度:

var myApp = angular.module('myApp',[]);

myApp.factory('Colony', function () {
    'use strict';
    return {
        isBuildable: function () {
            return true;
            //return false;
        }
    };
});
myApp.controller('MyCtrl', ['$scope', 'Colony', function ($scope, Colony) {
    'use strict';
     var building = {
         name: 'Building Name',
         isBuildable: null
     };
     $scope.building = building;
     $scope.building.isBuildable = Colony.isBuildable();   
     $scope.build = function (id) {

     };
}]);

http://jsfiddle.net/xz7arL0s/1/

正如您在 jsfiddle 中看到的那样,即使isBuildable为真,它也总是被禁用。我在这里想念什么?

4

1 回答 1

4

您有一个错字,您指的是构建而不是在绑定中构建。ng-disabled

将您的代码更新为:

<div ng-controller="MyCtrl">
        <h4>{{ building.isBuildable }}</h4>
        <button ng-click='build(building.id)' 
                class="btn btn-primary" 
                ng-disabled="!building.isBuildable">
       Build
       </button>
</div>

我也在Fiddle上编辑了这个。

于 2015-07-15T09:33:18.693 回答