运行多于一行代码的角三元表达式
Posted
技术标签:
【中文标题】运行多于一行代码的角三元表达式【英文标题】:Angular ternary expression that runs more than one line of code 【发布时间】:2015-10-07 05:48:34 【问题描述】:所以我有这个代码示例, 在我的一种形式中,它运行良好。
ng-submit="
commentCtrl.edit(comment.id, comment.text);
comment.edit=false;
"
另一方面,当我尝试在三元 ng-keyup 中运行多个“命令”时,出现问题,angular 无法解析它。
ng-keyup="
($event.keyCode == 13 && !$event.shiftKey)
?
commentCtrl.edit(comment.id, comment.text);comment.edit=false
:
return"
也试过了:
($event.keyCode == 13 && !$event.shiftKey)
?
commentCtrl.edit(comment.id, comment.text) && comment.edit=false
:
return"
请帮帮我!
【问题讨论】:
【参考方案1】:在标记内编写此类表达式是一种不好的做法。
无论如何,您都可以通过将值放入数组来做到这一点:
ng-submit="[commentCtrl.edit(comment.id, comment.text), comment.edit=false]"
ng-keyup="($event.keyCode == 13 && !$event.shiftKey)
? [commentCtrl.edit(comment.id, comment.text), comment.edit=false]
: 0"
【讨论】:
是否可以使用 ng-keyup 防止默认按键?我尝试使用这个数组:[$event.preventDefault,commentCtrl.edit(comment.id,comment.text),comment.edit=false] @GuyMazuz,$event.preventDefault
- 你刚刚阅读了这个函数,但还没有调用它。请改用$event.preventDefault()
。
你可能是对的,但无论哪种方式都不起作用:(出于同样的原因,我猜 alert('123') 不起作用,也许如果我将其设置为 true?像这样: $event.preventDefault=true
@GuyMazuz,我需要更多代码才能解开。请用最少的代码示例和问题描述提出另一个问题。然后使用 cmets 邀请我。以上是关于运行多于一行代码的角三元表达式的主要内容,如果未能解决你的问题,请参考以下文章