我在dashboard.html
{{#each todos}}
<li class="list-group-item">
{{ task }}
<button class="delete"> Delete</button>
</li>
{{/each}}
在控制器dashboard.js
中我有这个
DashboardController.events({
'click .delete': function () {
Meteor.call('ToDos.delete',this._id);
}
});
没有Iron Controller我可以使用this._id
在事件中访问集合的id,但是使用此设置它具有空值。任何想法如何在控制器中获取集合todo的id?
答案 0 :(得分:1)
请执行以下操作。
DashboardController = RouteController.extend({
template: 'layout',
data: function () { return SomeCollection.findOne(); },
waitOn: function() { return Meteor.subscribe('someCollection') }
});
DashboardController.events({
'click .delete': function () {
console.log(this.data())
console.log(this.data()._id)//not sure if this works.
Meteor.call('ToDos.delete',this.data());
}
});
这里的关键是我们不需要{{#each}}
,你应该使用数据函数用数据填充模板。
如果你这样做,它将起作用。
Template.example.events({
'click .delete': function () {
console.log(this.data()) //undefined
console.log(this._id)//id
Meteor.call('ToDos.delete',this._id);
}
})