【问题标题】:Semicolon in AngularJS expressionAngularJS 表达式中的分号
【发布时间】:2014-08-06 00:33:25
【问题描述】:

我想在一个 AngularJS 表达式中包含几件事,但是当使用分号时 - “;” 表达式不起作用。

data-ng-click="secondTerm.keyphrase.selected=!secondTerm.keyphrase.selected; alert(1)"

我该如何解决这个问题?

最好的问候。

编辑:

data-ng-click="secondTerm.keyphrase.selected=!secondTerm.keyphrase.selected;$window.alert(1)"

也不行。使用警报只是一个例子。我想在

之后调用其他函数
secondTerm.keyphrase.selected=!secondTerm.keyphrase.selected

【问题讨论】:

  • this 在 AngularJS 表达式中是 $scope。 alert 是在 window 上定义的,它不是全局的。阅读重复的问题和答案。
  • data-ng-click="secondTerm.keyphrase.selected=!secondTerm.keyphrase.selected;$window.alert(1)" 也不起作用。 alert(1) 只是示例。我只想调用其他函数而不是警报。
  • 我很确定你没有仔细阅读答案:$scope.$window = $window;.
  • 在它们之间用分号链接表达式应该可以工作。但我不建议这样做。您应该在控制器中调用一个函数,该函数将调用您要触发的所有函数。

标签: angularjs


【解决方案1】:

只需将它们包装在一个函数中以获得最佳实践:

$scope.myFunc = function(){
    secondTerm.keyphrase.selected=!secondTerm.keyphrase.selected;
    $window.alert(1);
}

data-ng-click="myFunc()"

【讨论】:

  • 嗨,Amir - 在您的 $scope.myFunc 中,我们是否可以将其视为函数表达式,因此在结束 } 之后放置一个分号,使其看起来像 };?我很好奇这是否会破坏 Angularjs 应用程序或没有任何区别。
  • @KyleVassella - 这不是强制性的,但建议这样做。在这里阅读:stackoverflow.com/questions/1834642/…
猜你喜欢
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
相关资源
最近更新 更多