在几个教程中看到它之后,我试图在我的视图中执行以下代码行
@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'
我想知道是否有人之前遇到过类似问题并且有快速解决方法。 如果没有,您需要更多代码才能找到解释,请告诉我......
答案 0 :(得分:1)
你实际上并没有在任何地方调用@model.fetch
方法。这样:
@model.fetch
不是方法调用,如果要调用方法,则需要添加括号或参数:
@model.fetch()
# or
@model.fetch success: -> ...
# etc.
否则你只是在JavaScript中生成this.model.fetch;
并且没有做任何有用的事情。