Jquery 主干视图在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

因此,我有一个由JSON url提供支持的集合。我所做的就是通过视图将JSON URL中的元素呈现到模板中。但是,我无法在更新JSON时刷新视图

我目前的看法是:

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发生更改,是否有某种方法可以自动触发它。