使用ng-click执行函数,但是第二个函数,如果满足条件

时间:2017-03-27 19:30:03

标签: javascript angularjs

我目前正在验证表单。我有一个名为“myFunction”的函数。

<button class="btn btn-lg btn-primary btn-block" type="submit" ng-click='form.$valid && myFunction()'>SEND</button>

如果表单有效,我希望函数在单击时运行,即

Form.$valid == true.

执行“myFunction()”函数。

我有其他功能,称为“directive_function()”。单击此按钮时,我需要始终执行此函数,但只有满足条件时才需要执行第二个函数“directive_function()”。

我需要在html视图中直接执行此操作,我不应该也不想在控制器中放置任何内容。我该怎么办?

或多或少我需要:

ng-click='directive_function(); form.$valid && myFunction()'

http://jsfiddle.net/4973nesL/

1 个答案:

答案 0 :(得分:2)

你不应该从你的角度来做这件事。您应该对其进行重组,以便将逻辑移动到控制器中。你可以这样做:

<button ng-click='directive_function();'>SEND</button>

并在您的控制器中

directive_function() {
  if(...) {
    // only execute function if your condition is met
    myFunction();
  }
}