检查一个发送休息的复选框的Ember列表

时间:2015-02-27 14:05:58

标签: ember.js checkbox

我的模板中有一个复选框列表:

<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");

},

1 个答案:

答案 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)
    }
  }

http://emberjs.jsbin.com/zohaqodese/2/