2013-10-10 2 views
0

Я пытаюсь сделать tableView с флажком select-all на spine.js и coffeescript. Я не могу понять, как я могу привязать select-all click, чтобы выбрать все модели в таблице. Флажок «select-all» отображается в представлении UserList. Код ItemView:Spine.js и все-все флажок

class UserItem extends Spine.Controller 
    className: 'user-item' 
    tag: 'tr' 

    elements: 
     'input[type="checkbox"]': 'checkbox' 

    events: 
     'click input[type="checkbox"]': 'itemChbClicked' 

    constructor: -> 
     super 
     @item.bind("update", @render) 
     @item.bind("destroy", @remove) 

    render: -> 
     @html require('views/user/item')(@item) 
     @ 

    remove: => 
     @el.remove() 

    itemChbClicked: (e) -> 
     @item.selected = @checkbox.is(':checked') 

код ITEMLIST:

class UserList extends Spine.Controller 
    className: 'user-list' 

    elements: 
     '.items': 'items' 
     ".select-all": "select_all_chb" 

    constructor: -> 
     super 

     @html require('views/user/list')() 
     User.bind("create", @addOne) 
     User.bind("refresh", @addAll) 
     User.fetch() 


    addOne: (user) => 
     view = new UserItem(item: user) 
     @items.append(view.render().el) 

    addAll: => 
     User.each(@addOne) 

Любая помощь будет оценен по достоинству! Благодаря!

ответ

0

Похоже, вы близки. В UserList создать функцию select_all_chb и это изменение пользователей:

class UserList 
    select_all_chb: => 
    User.each (user) -> 
     user.selected = true 
     user.save() 

Поскольку вы связаны «изменить» событие «визуализации», все пункты контрольного списка будут перерисованы.

Смежные вопросы