Angularjs 角度{{}表达式未在ng click内解析

Angularjs 角度{{}表达式未在ng click内解析,angularjs,angularjs-directive,ionic-framework,Angularjs,Angularjs Directive,Ionic Framework,以下行失败,单击图像时控制台显示“索引未定义”: <img class="full-image" ng-click="addFavorite({{dish.id}})" ng-src="{{baseURL+dish.image}}" title="{{dish.name}}" > 但是,任何其他表达式都可以很好地解析插值。我甚至添加了这个,以证明我可以显示菜肴id: <h2>{{dish.name}} {{dish.id}} {{dish.name}{{dish.

以下行失败,单击图像时控制台显示“索引未定义”:

<img class="full-image" ng-click="addFavorite({{dish.id}})" ng-src="{{baseURL+dish.image}}" title="{{dish.name}}" >

但是,任何其他表达式都可以很好地解析插值。我甚至添加了这个,以证明我可以显示菜肴id:

<h2>{{dish.name}} {{dish.id}}
{{dish.name}{{dish.id}
我得到了菜名,右边的菜名在浏览器上打印出来

如果将表达式交换为硬编码值(如2),则函数addFavorite()在单击时运行良好:

<img class="full-image" ng-click="addFavorite(2)" ng-src="{{baseURL+dish.image}}" title="{{dish.name}}" >


什么错误会阻止addFavorite()函数解析{{dish.id}表达式?

当您使用like
ng click
时,您不需要使用{{{}

更新:

这对你很有帮助

试着把把手放下。只需使用
ng click=“addFavorite(dish.id)”

ng click在没有把手的情况下工作的原因是,它是一个角度指令,将解析表达式,即不需要把手。NgSource接受一个字符串。要强制一个变量,你必须使用手柄来防止它被硬编码。与Title属性相同。它不是一个指令,需要传递一个字符串。当页面加载时,angular将解析把手并插入$scope中的正确文本。希望这有助于澄清这个问题。

看。我会习惯使用。这样你就不必为“{{}}”而烦恼了。另外,ngBind加载速度更快。@Mickers:好的,我会记住它,但它不适合ngBind click。哇。。。这起作用了。删除了{}部分。这是如此令人难以置信的沮丧:代码片段来自另一个控制器/模板,它与花括号配合得很好。最糟糕的是,这是我参加的AngularJS课程。我很想知道为什么它在一边工作而在另一边不工作。唯一的区别是,工作场景中提到的dish对象来自一组盘,格式为ng repeat=“dish in disks”。谢谢Minkyu,如果你对此有更多的了解,请告诉我。我真的不知道,因为我和你一样不熟悉angula.js,但我听说这是一种编译机制,在模板中,我们应该像jstl一样使用它。ng somethings是angular.js driectives的一部分,所以我们不使用它,但效果很好。是的,就是Arun。。。。如果你知道为什么它在我对Minkyu的评论中提到的某些其他情况下可以正常工作,请告诉我。现在车把的工作方式已经很清楚了。我无法理解的是,为什么这一点目前适用于我们在一门角度课程中学习的其他代码片段。我的意思是在ng click指令中添加{{}。我想我必须提供一个MCVE来进一步说明。