View 将操作发送到Ember.js中的视图
我有一个包含关闭按钮的视图:View 将操作发送到Ember.js中的视图,view,ember.js,action,emblem.js,View,Ember.js,Action,Emblem.js,我有一个包含关闭按钮的视图: .flash-message div class="close-button" click="view.removeFlash" = view view.content.thisView 视图本身是这样的: Whistlr.AlertView = Ember.View.extend templateName: "_alert" removeFlash: -> alert "Close!" 但是,当我单击“close button”
.flash-message
div class="close-button" click="view.removeFlash"
= view view.content.thisView
视图本身是这样的:
Whistlr.AlertView = Ember.View.extend
templateName: "_alert"
removeFlash: ->
alert "Close!"
但是,当我单击“close button”div时,什么也没有发生。我尝试过用几种不同的方法重写按钮:
click="view.removeFlash"
click="removeFlash"
click="removeFlash" target="view"
我还尝试将操作直接放置在控制器中(尽管我甚至不确定视图是否有控制器):
这些方法都不起作用。也许甚至不可能像使用控制器那样向视图发送操作?如果没有,我还能如何处理这个问题?将事件发送到视图的语法是,
{{action myEvent target=“view”}
。然后相应视图中的myEvent
处理程序可以处理此事件。如果没有目标,事件将转到该视图上下文中的控制器
我怀疑发生的是embody
将target
属性放在元素本身上,而不是放在动作处理程序中。因为target
也是一个有效的属性。您可以通过查看dev工具的Elements选项卡中生成的html来确认这一点
不幸的是,我没有一个解决办法与徽章。但是这个东西肯定适用于车把模板。徽章中正确的代码应该是
单击
,您不能将其分为两个属性
此外,在控制器/视图中,您需要使removeFlash成为actions对象的一部分
Whistlr.AlertView = Ember.View.extend
templateName: "_alert"
actions:
removeFlash: ->
alert "Close!"
谢谢,这就是解决办法。据我所知,在embody.js中没有内置的语法,但是有一种方法可以做出显式的把手样式声明。最后,我使用了:
div{action removeFlash on=“click”target=“view”}class=“close button”
看起来有一个内置语法,如前所述。它看起来是这样的:div class=“close button”click=“removeFlash target='view'”
非常有用,感谢您的发布。
Whistlr.AlertView = Ember.View.extend
templateName: "_alert"
actions:
removeFlash: ->
alert "Close!"