繁体   English   中英

财产的灰烬绑定动作

[英]Ember bind action from property

在Ember中,我试图从视图中的属性绑定模板中的操作。

App.MyView = Ember.View.extend({
items: [
    {title: Em.I18n.t("admin.action.clone"), icon: "copy", action: "clone"},
    {title: Em.I18n.t("admin.action.new"), icon: "plus", action: "new"}
]
});

并在模板中:

{{#each itm in view.items}}
        <a {{action itm.action}}>{{itm.title}}</a>
{{/each}}

Action使用文字字符串itm.action并且不执行绑定。 导致出现错误,提示未处理itm.action。

有什么办法可以让动作助手在动作冒泡之前执行该绑定?

解决方法是在代理处理程序方法中触发特定于项目的操作:

视图

App.MyView = Ember.View.extend({
  items: [
    {title: Em.I18n.t("admin.action.clone"), icon: "copy", action: "clone"},
    {title: Em.I18n.t("admin.action.new"), icon: "plus", action: "new"}
  ],

  actions: {
    handleItemClick: function(item) {
      var action = item.get('action');
      this.send(action);
    }
  }
});

模板

{{#each itm in view.items}}
  <a {{action "handleItemClick" itm target="view"}}>{{itm.title}}</a>
{{/each}}

编辑

动态操作名称现在位于主目录中。 看看: https : //github.com/rjackson/ember.js/commit/7396b37172b59e27647a07574ea7051ab06d001a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM