在骨干应用程序中,获取模型的最佳做法是什么?我可以看到以下可能性。
答案 0 :(得分:1)
一些最好的实践:
因此,当用户从服务器获得正确的页面时,模型和集合应该已经到位(nice example from backbone.js docs)
var ExampleCollection = new Backbone.Collection();
ExampleCollection.reset(<%= @your_collection_data.to_json() %>); // Or whatever your server-side language requires you to do, this is a ruby example
初始化应用程序时不需要的模型和集合可以随时获取,但我认为这样做的逻辑时间是用户表达使用这些模型的意图。例如。用户按下按钮打开需要某些模型/集合的视图 - &gt;获取该集合,用户希望从模型中清除未保存的更改 - &gt;从服务器获取该模型以获取模型的上次保存状态,依此类推。通常,绑定发生的位置是“拥有”模型/集合的视图,因为它将用户操作中继到模型并向用户显示模型的状态。
但是就像它说的那样,Backbone.js对于何时应该获取模型或集合并不严格。它可以在应用程序的任何地方完成,只要确保只在必要时才这样做。
希望这有帮助!
答案 1 :(得分:1)
如果您想成为标准,那么您的视图必须在初始化时监听一次并监听模型的更改事件,并在每次模型更改时重新渲染视图,即全部。 (关于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();