2014-08-27 50 views
0

我有一個ng-click,其中有2個函數。防止第二個函數在angularjs中被相同的ng-click調用

  1. 功能1:在指令的函數,設置一個範圍變量 真/假
  2. 功能2:在控制器中的功能

眼下在功能2在開始的時候我檢查值從Function1範圍變量,如果它是假的我返回false(即停止它)。

所以我的問題是:如果第一個函數返回false而沒有在Function2中寫入任何內容,Function2是否可以不被調用?

謝謝。

+1

使用承諾,$ q。 – harishr 2014-08-27 18:59:10

+1

將變量傳遞給控制器​​功能。 'ng-click =「directiveFunction(); controllerFunction(booleanVariable);」' – marneborn 2014-08-27 19:16:16

+0

@marneborn我現在做了類似的事情,這就是我想要擺脫的。我的問題是如果函數2的調用可以在Function1(指令)中停止而不改變指令。 @ HarishR我不知道如何實現它。 – Sergey6116 2014-08-27 19:46:32

回答

1

試試這個:

ng-click="directiveFunction(); booleanVariable ? controllerFunction() : noop();" 

從這裏:https://docs.angularjs.org/guide/expression

無控制流語句

除三元運算符(A B:C),也可以不寫一個 表達式中的控制流程語句。這背後的原因是Angular哲學的核心,即應用程序邏輯 應該在控制器中,而不是視圖中。如果您需要一個真正的條件,循環或從視圖表達式中拋出 ,請改爲委託給JavaScript方法。

+0

這麼簡單的方法,非常感謝。 – Sergey6116 2014-08-27 21:25:29

相關問題