也許我只是沒有想直。我可以使用某種形式的角度ng-click和ng-disabled來啓用/禁用通過我的控制器的鏈接嗎?陣列爲空時的角度禁用按鈕
see fiddle...
在「做的東西的東西」,除非至少一個「東西」被選中按鈕不應該被啓用,也沒有任何動作應該是採取。當然,一旦檢查到物品,按鈕應該激活。
我越試圖解決這個問題,它就越複雜,我不禁想到我忽略了一些明顯的東西。
也許我只是沒有想直。我可以使用某種形式的角度ng-click和ng-disabled來啓用/禁用通過我的控制器的鏈接嗎?陣列爲空時的角度禁用按鈕
see fiddle...
在「做的東西的東西」,除非至少一個「東西」被選中按鈕不應該被啓用,也沒有任何動作應該是採取。當然,一旦檢查到物品,按鈕應該激活。
我越試圖解決這個問題,它就越複雜,我不禁想到我忽略了一些明顯的東西。
因爲ng-disabled對於INPUT的。
這裏使用納克級是fiddle
<a ng-class="{'disabled': things.length==0}" ng-click="doStuff()">Do stuff to Thing(s)</a>
$scope.doStuff = function(){
if($scope.things.length==0) return;
console.log('Stuff has been done to things');
}
首先的一個例子,你需要的,如果你想要做NG-禁用的東西去掉周圍的測試卷曲。一般來說,你不需要使用原生的角度指令(除了ng-href ..)
之後,ng-disabled如果不在按鈕上不會阻止ng-click,所以你需要使用一個按鈕或使用這樣的syntaxe在NG-點擊:
ng-click="condition && doSomething()"
這裏是一個工作示例,希望它會幫助你
I.do.not。理解角度的花括號語法。有時它是雙重的,有時是單一的,有時根本沒有。我不知道他們中的任何一個是什麼意思。 – DaveC426913 2014-08-28 20:52:12
這很簡單:)。雙花括號聲明爲angular來內容爲javascript的內容。你可以定義變量,調用函數... 在一個指令中,你不需要使用它們,因爲在$ parse服務中被調用。內容將在每次指令需要時插入。 此外,somple花括號用於定義一個JavaScript對象。當你聲明'ng-class =「{active:condition}」'你給一個具有活動屬性的文字對象。 – Polochon 2014-08-29 07:55:54
在Angular控制器中操作DOM並不被認爲是好的做法。唯一適合的地方是指令。 – 2014-08-28 18:42:38
退房在這個崗位ryeballer的回答是:Angular JS + Button should be enabled if at least one checkbox is checked how To do it?
提供應修改的plunker ryeballer通過在NG-禁用指令翻轉的條件:
ng-disabled="!isChecked()"
這是一個調整後的重擊者: http://plnkr.co/edit/N0az5UeVH0VRlGK1ZwvC?p=preview
這看起來與您想要做的非常相似。
請記住ng-disabled指令似乎並不影響錨標籤。所以,如果可以的話,使用別的東西(比如一個按鈕元素)。 另外,請注意您的初始解決方案如何不利用Angulars數據綁定。不要在複選框上設置ng-click事件,只需通過ng-model指令告訴Angular該數據是什麼。讓Angular關心你在setThing()方法中獲得的東西。
我可以把它做一次,但是當我回到頁面時,按鈕被啓用,複選框沒有任何作用。 – DaveC426913 2014-08-28 20:51:13
你的意思是?你能舉個例子嗎? – 2014-08-29 07:03:58