0

私は、spine.jsとcoffeescriptですべて選択チェックボックスを使用してtableViewを作成しようとしています。すべて選択クリックをバインドしてテーブル内のすべてのモデルを選択する方法がわかりません。「すべて選択」チェックボックスは、UserList ビューでレンダリングされます。ItemView コード:

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')

アイテムリストのコード:

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)

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

0

近くにいるようです。UserList で select_all_chb 関数を作成し、ユーザーを変更します。

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

「変更」イベントを「レンダリング」にバインドしたため、すべてのチェックリスト項目が再描画されます。

于 2013-10-10T17:02:18.597 に答える