在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没有处理。
有没有办法让动作助手在冒泡动作之前执行该绑定?
答案 0 :(得分:2)
解决方法是在代理处理程序方法中触发特定于项目的操作:
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}}
修改强>:
动态操作名称现在位于master中。看看:https://github.com/rjackson/ember.js/commit/7396b37172b59e27647a07574ea7051ab06d001a