我使用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>
我的角度:
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
为真,也始终禁用它。我在这里缺少什么?
答案 0 :(得分: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编辑了这个。