我有一个观点:
class FancyView extends Backbone.View
template: #fancytemplate
initialize: () ->
@add()
@model.bind('change', @update)
add: () ->
$(@el).html($(@template).tmpl(@model.toJSON())).prependTo('#fancy')
update: () ->
$(@el).html($(@template).tmpl(@model.toJSON()))
当更新中出现更改时,更新中的@model.changedAttributes()
会显示data
下的更改,但日志@model
仍会显示旧数据,因此更新时没有任何更改。
为什么@model
仍然是旧数据?
答案 0 :(得分:1)
很高兴看到更多...模板是什么样的?您使用的模板引擎是什么?
我可以说我发现了一个问题...你需要使用“胖箭”(=>
)代替(->
)来实现update
功能。如果不这样做,@el
,@template
和@model
将在事件触发时处于错误的上下文中。
update: =>
$(@el).html($(@template).tmpl(@model.toJSON()))