首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular {{ }}表达式未在ng-click内解析

angular {{ }}表达式未在ng-click内解析
EN

Stack Overflow用户
提问于 2016-09-22 08:34:12
回答 3查看 646关注 0票数 1

下面这行失败,点击图片时控制台显示"index is undefined“:

代码语言:javascript
复制
<img class="full-image" ng-click="addFavorite({{dish.id}})" ng-src="{{baseURL+dish.image}}" title="{{dish.name}}" >

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

代码语言:javascript
复制
<h2>{{dish.name}} {{dish.id}}

我得到了菜名,右边的菜品id在浏览器上打印出来。

如果我将表达式交换为硬编码值,例如2,则单击时函数addFavorite()运行正常:

代码语言:javascript
复制
<img class="full-image" ng-click="addFavorite(2)" ng-src="{{baseURL+dish.image}}" title="{{dish.name}}" >

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-22 08:36:01

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

更新:

这对你很有帮助,https://docs.angularjs.org/api/ng/directive/ngClick

票数 0
EN

Stack Overflow用户

发布于 2016-09-27 04:37:46

ng-click不需要handlebars的原因是因为它是一个Angular指令,可以解析表达式,也就是不需要handlebars。NgSource接受一个字符串。要强制一个变量,你必须使用句柄来防止它被硬编码。与Title属性相同。它不是一个指令,它需要传递一个字符串。当页面加载时,angular将解析车把并插入来自$scope的正确文本。希望这有助于澄清这个问题。

票数 1
EN

Stack Overflow用户

发布于 2016-09-22 08:37:03

试着去掉车把吧。只需使用ng-click="addFavorite(dish.id)"即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39628483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档