在Marionette.ItemView中更新封闭的标记类

Kri*_*aun 1 backbone.js marionette

我有一个Marionette.ItemView,它使用CSS类来不同地设置新项目的样式:

class Happenator.Views.Option extends Backbone.Marionette.ItemView
  tagName: 'li'
  className: =>
    return 'new' if @model.isNew()
  initialize: ->
    @bindTo @model, "change", -> @render()
Run Code Online (Sandbox Code Playgroud)

保存和更新模型后,所有内容都会刷新,但"新"类仍保留在"li"上.有没有一种更新封闭标签类更新的好方法?

the*_*heo 5

是的,"新"类保留在"li"上,因为实际上Backbone className仅在初始化方法调用之前使用该属性.请查看此答案以获得更多解释.

但为什么不使用jQuery .toggleClass.removeClass?就像是

render: =>
    @$el.html(@template(@model.toJSON()))
    unless @model.isNew()
        @$el.removeClass('new')
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/GX8WJ/21/