2015-07-15 4 views
0

Я работаю с угловыми и пытаюсь отключить кнопку, если значение из моей области видимости «истинно». Я видел ng-disabled, который, кажется, чтобы быть совершенным, но я не знаю, почему это не работает ...Почему моя кнопка отключена с помощью 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

У вас есть опечатка, вы имеете в виду строить вместо здания в 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.

+0

Действительно ... Спасибо! – Alex