我有一个ng-click,其中有2个函数。防止第二个函数在angularjs中被相同的ng-click调用
- 功能1:在指令的函数,设置一个范围变量 真/假
- 功能2:在控制器中的功能
眼下在功能2在开始的时候我检查值从Function1范围变量,如果它是假的我返回false(即停止它)。
所以我的问题是:如果第一个函数返回false而没有在Function2中写入任何内容,Function2是否可以不被调用?
谢谢。
我有一个ng-click,其中有2个函数。防止第二个函数在angularjs中被相同的ng-click调用
眼下在功能2在开始的时候我检查值从Function1范围变量,如果它是假的我返回false(即停止它)。
所以我的问题是:如果第一个函数返回false而没有在Function2中写入任何内容,Function2是否可以不被调用?
谢谢。
试试这个:
ng-click="directiveFunction(); booleanVariable ? controllerFunction() : noop();"
从这里:https://docs.angularjs.org/guide/expression
无控制流语句
除三元运算符(A B:C),也可以不写一个 表达式中的控制流程语句。这背后的原因是Angular哲学的核心,即应用程序逻辑 应该在控制器中,而不是视图中。如果您需要一个真正的条件,循环或从视图表达式中抛出 ,请改为委托给JavaScript方法。
这么简单的方法,非常感谢。 – Sergey6116 2014-08-27 21:25:29
使用承诺,$ q。 – harishr 2014-08-27 18:59:10
将变量传递给控制器功能。 'ng-click =“directiveFunction(); controllerFunction(booleanVariable);”' – marneborn 2014-08-27 19:16:16
@marneborn我现在做了类似的事情,这就是我想要摆脱的。我的问题是如果函数2的调用可以在Function1(指令)中停止而不改变指令。 @ HarishR我不知道如何实现它。 – Sergey6116 2014-08-27 19:46:32