我的模板中有一个复选框列表:
<table>
<thead>
<tr>
<th></th>
<th>Sender</th>
<th>Title</th>
</tr>
</thead>
<tbody>
{{#each message in model.entities}}
<tr>
<td class="cell-star">
{{input type="checkbox" name=message.id tabindex=message.id class="starBox" checked=message.isStar }}
</td>
<td class="cell-broadcaster">
{{message.notification.autor.firstName}} {{message.notification.autor.lastName}}
</td>
<td class="cell-title">
{{#link-to 'notifications.details' message.notification.id}}{{message.notification.title}}{{/link-to}} {{#unless message.isRead}} (new) {{/unless}}
</td>
</tr>
{{/each}}
</tbody>
</table>
现在我想在每次更改某些复选框状态时更改复选框的ID时发送休息查询。 我应该在控制器中写什么?
我尝试了类似的东西,但我无法获得更改复选框的数据:
updateStarStatus: function() {
console.log('checkbox clicked');
//here should be something like that:
//$.getJSON(apiHost + "/api/forum/star/"+id);
}.observes('model.entities.@each.isStar'),
我不使用emberData。我的模型看起来像这样:
model: function() {
return $.getJSON(apiHost + "/api/forum");
},
答案 0 :(得分:0)
您可以使用observesBefore方法跟踪更改并在observes方法中创建差异,但我宁愿使用native on change事件来触发操作并传递对象:
<div {{action "updateStarStatus" message on="change"}}>
{{input type="checkbox" checked=message.isStar}}
并在控制器中
actions: {
updateStarStatus: function(message) {
alert(message.id)
}
}