Backbone.js 谁应该在主干应用程序中获取模型?

Backbone.js 谁应该在主干应用程序中获取模型?,backbone.js,backbone-views,Backbone.js,Backbone Views,在主干应用程序中,获取模型的最佳实践是什么?我可以看到以下可能性 视图调用模型获取方法 其他一些JavaScript代码调用获取模型?如果是的话,这个代码什么时候会有什么结构?这是主干网中缺少的控制器概念吗 一些最佳实践: 1从应用程序生命周期的最初几毫秒开始需要的集合和模型应该“引导”到位(因此不需要获取它们来访问重要数据) 因此,当从服务器向用户提供正确的页面时,模型和集合应该已经就位() var ExampleCollection=new Backbone.Collection(); E

在主干应用程序中,获取模型的最佳实践是什么?我可以看到以下可能性

  • 视图调用模型获取方法
  • 其他一些JavaScript代码调用获取模型?如果是的话,这个代码什么时候会有什么结构?这是主干网中缺少的控制器概念吗
    • 一些最佳实践:

      1从应用程序生命周期的最初几毫秒开始需要的集合和模型应该“引导”到位(因此不需要获取它们来访问重要数据) 因此,当从服务器向用户提供正确的页面时,模型和集合应该已经就位()

      var ExampleCollection=new Backbone.Collection();
      ExampleCollection.reset();//或者,无论服务器端语言要求您做什么,这都是一个ruby示例
      
      其余的可以及时取回 在你的应用程序初始化时不需要的模型和集合可以随时提取,但我认为这样做的合理时机是当用户表示有意使用这些模型时。例如,用户按下按钮打开需要某些模型/集合的视图->获取该集合,用户希望清除模型中未保存的更改->从服务器获取该模型以获取模型的上次保存状态,等等。通常,抓取必然发生的地方是“拥有”模型/集合的视图,因为它将用户的操作传递给模型,并向用户显示模型的状态

      但正如前面所说,Backbone.js对何时获取模型或集合并不严格。它可以在应用程序中的任何位置完成,只需确保只有在必要时才执行即可


      希望这有帮助

      如果希望成为标准视图,则视图必须在初始化时渲染一次,并侦听模型的更改事件,然后在每次模型更改时重新渲染视图,仅此而已。(关于获取完成后View需要做什么)

      对于调用model.fetch(),如果您遵循我说过的标准,那么无论在哪里调用fetch,您的视图都将被更新

      有些人可能在视图中有一个名为load的模块,可以执行以下操作:

      load : function(){
        this.model.fetch();
      }
      
      var myModel = new YourModel();
      var myView = new SomeView( {model : model} );
      //Probably you could render with the default data in the while model is fetched
      myView.render();
      model.fetch();
      
      其他人可以执行外部提取调用,如下所示:

      load : function(){
        this.model.fetch();
      }
      
      var myModel = new YourModel();
      var myView = new SomeView( {model : model} );
      //Probably you could render with the default data in the while model is fetched
      myView.render();
      model.fetch();