2014-05-02 36 views
0

一個widget我有四個按鈕:禁止使用angularjs

<button ng-disabled = "isDisabled1" ng-click="someFunc('isDisabled1')"></button> 
<button ng-disabled = "isDisabled2" ng-click="someFunc('isDisabled2')"></button> 
<button ng-disabled = "isDisabled3" ng-click="someFunc('isDisabled3')"></button> 
<button ng-disabled = "isDisabled4" ng-click="someFunc('isDisabled4')"></button> 

現在,當click event fires按鈕中的任何一個它calls the someFunc()function和功能我想disable the button that was clicked.

我做這裏面的內controller

$scope.someFunc(toDisable){ 
    $scope.toDisable = true; 
} 

但這不起作用。任何想法如何。我是AngularJS的新手。

+0

'$ scope [toDisable] = true' – angabriel

+0

@angabriel是的,它的工作原理。非常感謝。你能告訴我爲什麼訪問toDisable作爲一個屬性不起作用。但作爲一個數組成員訪問相同的作品? – user3283104

+0

,因爲'$ scope.isDisabled1' ...'$ scope.isDisabled4'還不存在。您不能使用點符號動態訪問屬性。 – angabriel

回答

0

使用的地圖存儲值

例:$scope.isDisabled={ isDisabled1:false, isDisabled2:false, . . . }

$scope.someFunc(toDisable){ 
$scope.isDisabled[toDisable]= true; 

}

0

另一種簡單的方式來做到這一點是使用ng-click指令評估一個將操縱ng-disabled指令中使用的變量的表達式。

例如

<button ng-disabled="ds1" ng-click="ds1 = true">btn1</button> 
<button ng-disabled="ds2" ng-click="ds2 = true">btn2</button> 
<button ng-disabled="ds3" ng-click="ds3 = true">btn3</button> 
<button ng-disabled="ds4" ng-click="ds4 = true">btn4</button> 

相關的重擊者here