在模板中,我遍历所有Users
。从每个User
开始,我想将按钮连接到xyz
(singluar)中的UserController
函数。我如何使用{{action}}
来做到这一点?现在我的所有尝试都以UsersController
结束。
的index.html
<script type="text/x-handlebars" data-template-name="users">
<table>
{{#each model}}
<tr>
<td>{{lastName}}</td>
<td><button {{action "xyz" this}}>Xyz</button></td>
</tr>
{{/each}}
</table>
</script>
app.js
App = Ember.Application.create();
App.Store = DS.Store.extend({
revision: 12,
adapter: 'DS.FixtureAdapter'
})
App.Router.map(function() {
this.resource('about');
this.resource('users', function() {
this.resource('user', { path: ':user_id' })
})
});
App.UsersRoute = Ember.Route.extend({
model: function() {
return App.User.find();
}
});
App.UserController = Ember.ObjectController.extend({
xyz: function() {
console.log('Bingo!')
}
})
App.User = DS.Model.extend({
lastName: DS.attr('string'),
})
App.User.FIXTURES = [{
id: 1,
lastName: "Clinton"
}, {
id: 2,
lastName: "Obama"
}]
答案 0 :(得分:1)
一种解决方案可能是使用itemController="user"
助手的each
属性。这样,目标控制器应该是每个用户的UserController实例。
{{#each model itemController="user"}}
<tr>
<td>{{lastName}}</td>
<td><button {{action "xyz" this}}>Xyz</button></td>
</tr>
{{/each}}