【问题标题】:Spine.js and select-all checkboxSpine.js 和全选复选框
【发布时间】:2013-10-11 01:02:18
【问题描述】:

我正在尝试在spine.js 和coffeescript 上使用全选复选框制作tableView。我无法理解如何绑定全选单击以选择表中的所有模型。 “全选”复选框在 UserList 视图中呈现。 项目查看代码:

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)

任何帮助将不胜感激!谢谢!

【问题讨论】:

    标签: coffeescript spine.js


    【解决方案1】:

    看起来你很接近了。在 UserList 中创建 select_all_chb 函数并让它更改用户:

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

    由于您已将“更改”事件绑定到“渲染”,所有清单项目都将被重绘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-13
      • 2016-02-20
      • 2019-01-17
      • 2011-04-02
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多