我有一个Ember.Button应该从数组中删除一个元素。按钮标签只是一个X(现在)。
我想知道存储数据以供按钮使用的最佳方法。如果这是普通的jquery,我可能会使用data-username。但是最好的方法是什么?
更新 这个问题的用例是这样的:
{{#each App.recentUsersArray}}
<li>
{{#view App.RecentNameBtn contentBinding="this"}} {{content}} {{/view}}
{{#view App.RecentNameDeleteBtn}}X{{/view}}
</li>
{{/each}}
在第二个视图中,我需要一种方法来了解删除操作应该应用于哪个用户名。
答案 0 :(得分:1)
使用{{action}}
帮助程序,它将上下文作为参数传递,请参阅http://jsfiddle.net/zVd9g/。注意:在即将发布的Ember.js版本中,动作助手只传递一个参数,因此您必须调整源accordingly。
如果您想使用现有的观看次数,可以像contentBinding="this"
上的App.RecentNameDeleteBtn
一样App.RecentNameBtn
进行<script type="text/x-handlebars" >
{{#each App.arrayController}}
<button {{action "showTweets" target="App.arrayController" }} >{{this}}</button>
<button {{action "removeItem" target="App.arrayController" }}>x</button>
<br/>
{{/each}}
</script>
。
<强>车把:强>
App = Ember.Application.create({});
App.arrayController = Ember.ArrayProxy.create({
content: [1, 2, 3, 4, 5, 6],
removeItem: function(view, evt, item) {
console.log('remove user %@'.fmt(item));
this.removeObject(item);
},
showTweets: function(view, evt, item) {
console.log('show tweets of user %@'.fmt(item));
}
});
<强> JavaScript的:强>
{{1}}