从指令的ng-click中使用警报提示

19

刚接触angularjs,想将一个表达式写入ng-click中。

例如:

x.directive('li',function(){
  return {
      restrict: 'E',
      replace: true, 
      template: '<games> <game  ng-click="(alert({{ game }})" ng-repeat="game in games"> {{ game.team1 }} {{game.bets }}   <game></br></games> '
  }     
});

我想在点击时警报游戏,但是我遇到了这个错误:

Error: [$parse:syntax] Syntax Error: Token 'game' is unexpected, expecting [:] at column 11 of the expression [(alert({{ game }})] starting at [game }})].

尝试使用 ng-click="console.log(game)" - harishr
没有成功 @HarishR - AME
1个回答

43
当您在ng-click中请求“alert”时,它会在$scope上查找该方法,但是它不存在。
请参见此plunkr,其中我在作用域上使用函数来调用指令单击时的警报。
在控制器中,我们设置了该函数:
$scope.test = function(text) {
  alert(text);
}

或者你可以这样做:$scope.alert = alert.bind(window);。如果不绑定上下文到窗口,它将无法正常工作。

在指令的ng-click中,我们调用了我们的函数:

 ng-click="test(game)"

警告实际上是有效的,当你点击文本“test”(这就是ng-click放置的位置)时。 - Nitsan Baleli
2
谢谢您的时间,但这不是我所要求的。 - AME
1
请澄清您需要什么。您想通过ng-click从模板警报一个变量,您的模板正常工作。您需要删除花括号,并建议创建一个函数来执行警报,并仅从模板的ng-click调用该函数,就像在plunkr中一样。请查看plunkr并询问是否有不清楚的地方。 - Nitsan Baleli
我想在视图中使用ng-click而不使用控制器来输出“游戏中的游戏”。基本上我想这样做:ng-click="(alert({{某些表达式}})" - AME
或者在控制器$scope上有一个名为'alert'的函数。然后你可以在HTML中像预期的那样使用alert()。 - F.H.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接