为什么不使用ng-disabled禁用我的按钮?

Why isn't my button disabled using ng-disabled?

本文关键字:按钮 我的 ng-disabled 为什么不      更新时间:2023-09-26

我使用angular并尝试禁用一个按钮,如果我的作用域中的值是'true'。我看到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>

And my angular:

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为真,它也总是被禁用。我遗漏了什么?

你有一个打字错误,你指的是构建而不是构建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>

我也是在小提琴上编辑的