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

时间:2012-06-20 22:55:31

标签: 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()

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

1 个答案:

答案 0 :(得分:5)

是的,'new'类保留在'li'上,因为实际上Backbone仅在初始化方法调用之前使用className属性。请查看at this answer以获取更多解释。

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

这样的东西
render: =>
    @$el.html(@template(@model.toJSON()))
    unless @model.isNew()
        @$el.removeClass('new')

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