如何将 ng-click 与多个表达式一起使用
How to use ng-click with multiple expressions?
我想使用 ng-click 来执行多个表达式。我想在模型上设置一个值,并从$scope
调用一个方法,如下所示:
<a ng-click="navigation.book = book && bookSvc.showBook(book)" href="#{{book.id}}">{{book.title}}</a>
我&&
将我想要执行的两个不同表达式分开。我知道我可以添加一个在控制器中同时做这两件事的方法。我应该这样做,还是有没有办法直接从内部ng-click
执行两个表达式?
只需使用";"而不是"&&"来分隔表达式应该适合您:
<a ng-click="navigation.book = book; bookSvc.showBook(book)" href="#{{book.id}}">{{book.title}}</a>
您只能将表达式写入ng-click
。
ngClick 指令允许您指定单击元素时的自定义行为。
但是你可以写:
<a ng-click="( (navigation.book = book) && bookSvc.showBook(book))" href="#{{book.id}}">{{book.title}}</a>
在这种情况下,navigation.book
获取book
内容。
演示小提琴
参考
我们在这里有几个选项来调用navigation.book = book
如果我们写会发生什么:
ng-click="( bookSvc.showBook(book) && (navigation.book = book))"
在这种情况下,如果(看起来bookSvc
是一个服务)bookSvc.showBook(book)
不返回任何内容或false
,则navigation.book = book
将永远不会执行。
演示 2 小提琴
但是,如果bookSvc.showBook(book)
返回true
则将调用navigation.book = book
。
演示 3 小提琴
我建议将所有逻辑放在一个函数中,然后只分配ng-click,以使代码更简单,更优雅。
相关文章:
- java.net和javascript之间正则表达式的差异
- 转义符不能与innerHTML一起使用
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- ng init中的表达式无法使用ng repeat
- 正则表达式在字符串中找到base64
- 错误:与指令一起使用的表达式“未定义”不可赋值
- 如何将 ng-click 与多个表达式一起使用
- 将立即调用的函数表达式 (IIFE) 与事件发射器一起使用
- 将两个正则表达式组合在一起
- 与正则表达式一起使用时无法读取属性长度 null 错误
- 变量数组+正则表达式不能一起工作
- 当与棱角分明的表达式一起使用时,添加到日历中的奇怪行为
- 与ng模式一起使用时,有效的正则表达式模式会抛出错误
- 将HTML标记和字符实体一起修剪为Javascript正则表达式
- 使用正则表达式将不区分大小写的find与mongoose一起使用
- 在OR中将正则表达式组合在一起
- Angular Js将一个固定的ng类和同一标记中的一个表达式组合在一起
- 将 split 方法与正则表达式一起使用后数组中的空字符串
- 正则表达式转换以与Javascript一起使用