0

在几个教程中看到它后,我试图在我的视图中执行以下代码行

@model.on('change', @render, this)

不幸的是,更改事件没有触发,因此我的视图没有重新渲染。

我尝试绑定到不同的事件并使用触发函数创建几个自定义事件,但模型上似乎没有任何触发。此外,控制台没有错误。更改事件在不同的集合上运行良好。我正在使用 Zepto 1.0、Backbone.js 0.9.2 和 Underscore.js 1.3.1

编辑:我正在尝试从路由器执行以下操作

  place: (id) ->
    @model = new GM.Models.Place({id: "#{id}"})
    @model.fetch
    view = new GM.Views.Place(model: @model)
    $('#container').html(view.render().el)

我的模型是这样设置的:

class GM.Models.Place extends Backbone.Model
  urlRoot: '/mobile/place'

我想知道是否有人以前遇到过类似的问题并有一个快速修复。如果没有,并且您需要更多代码来找到解释,请告诉我...

4

1 回答 1

1

您实际上并没有在@model.fetch任何地方调用该方法。这:

@model.fetch

不是方法调用,要调用方法需要加括号或参数:

@model.fetch()
# or
@model.fetch success: -> ...
# etc.

否则,您只是this.model.fetch;在 JavaScript 中生成,并没有做任何有用的事情。

于 2012-04-23T19:46:12.843 回答