Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
View 将操作发送到Ember.js中的视图_View_Ember.js_Action_Emblem.js - Fatal编程技术网

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!"