2014-08-27 52 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

相关问题