Jquery 主干视图在JSON集合更改时未刷新
因此,我有一个由JSON url提供支持的集合。我所做的就是通过视图将JSON URL中的元素呈现到模板中。但是,我无法在更新JSON时刷新视图 我目前的看法是:Jquery 主干视图在JSON集合更改时未刷新,jquery,backbone.js,coffeescript,Jquery,Backbone.js,Coffeescript,因此,我有一个由JSON url提供支持的集合。我所做的就是通过视图将JSON URL中的元素呈现到模板中。但是,我无法在更新JSON时刷新视图 我目前的看法是: class wiki.Views.FileUpload extends Backbone.View el: '#category' initialize: -> @collection = new wiki.Collections.Files @collection.fetch().do
class wiki.Views.FileUpload extends Backbone.View
el: '#category'
initialize: ->
@collection = new wiki.Collections.Files
@collection.fetch().done(@render)
@collection.on "change", @render, this
render: =>
@$el.html JST['templates/file_upload']
@$ul = @$('#file_view')
for page in @collection.models
pageHtml = JST['templates/file_history']({
page: page
})
@$ul.append(pageHtml)
@show()
show: =>
@$el.show()
在我的模板中,我只是将所有JSON与其他一些不重要的HTML一起呈现。无论如何,基本上我的目标是,一旦集合中的JSON发生更改,视图就会刷新。有什么想法吗?您的模板是否理解您正在抛出的完整主干模型实例?也许您想要
page:page.attributes
?我的页面将在第一次完全呈现,正确循环每个JSON对象并显示正确的HTML元素。基本上,我知道@collection.models中的“for page”工作正常,但我添加了“@collection.on”change“,@render,this”这一行,试图在JSON更改时刷新视图,但在JSON更改时仍然不会刷新。您的视图如何知道JSON更改?是否有一个fetch
调用可以刷新集合?顺便说一句,你可能想JST['templates/file\u upload']()
,将函数传递给。html
是一个不好的习惯。请注意。这就是我所缺少的。我知道fetch将获取数据,但我不确定是否需要对其进行编程,以便它进行检查,或者如果JSON发生更改,是否有某种方法可以自动触发它。