我有以下骨干视图:
class Observation扩展了Backbone.Model
class Observations extends Backbone.Collection
model: Observation
constructor: ->
@url = _observationsUrl
class ObservationsView extends Backbone.View
el: $('#observations')
initialize: ->
_.bindAll @
@model.bind 'changed', @render
@model.view = @
that = @
@model.fetch {
success: ->
alert('success')
that.model.trigger 'changed'
}
render: =>
alert('rendering baby')
class ObservationsController extends Backbone.Controller
initialize: ->
observations = new Observations()
observationsView = new ObservationsView(model: observations)
Run Code Online (Sandbox Code Playgroud)
我将模型的已更改事件绑定到ObservationsView的render方法.该模型是骨干集合.
fetch正在成功运行,但未触发更改的事件.我正在绝望地尝试手动触发器.
谁能看到我做错了什么?
该事件未被称为"已更改".从服务器刷新模型集合后触发的事件是"刷新".
"改变"事件实际上更复杂.这是一个模型上的事件,无论何时调用都会触发.set()它,并且它总是包含属性,因此您可以编写如下内容:
this.model.bind('change:username', _.bind(this.update_username_display, this))
Run Code Online (Sandbox Code Playgroud)
与往常一样,backbone.js源代码非常易读.
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |