Javascript BackBoneJS哪种方法最好?获取+;成功还是失败
我有一个主干应用程序,我从后端API获取主干视图中的数据,然后调用函数Javascript BackBoneJS哪种方法最好?获取+;成功还是失败,javascript,json,ajax,backbone.js,Javascript,Json,Ajax,Backbone.js,我有一个主干应用程序,我从后端API获取主干视图中的数据,然后调用函数render,用我获取的数据呈现模板 我想知道哪一种是获取和渲染的最佳实践,以及为什么 1-使用fetch,然后在success上调用render: define( ['models/object', 'text!templates/home.html', 'backbone' ], function(ObjectModel, HomeTemplate, Backbone
render
,用我获取的数据呈现模板
我想知道哪一种是获取和渲染的最佳实践,以及为什么
1-使用fetch,然后在success
上调用render
:
define(
['models/object',
'text!templates/home.html',
'backbone'
],
function(ObjectModel, HomeTemplate, Backbone) {
var homeView = Backbone.View.extend({
initialize: function(options) {
var self = this;
this.homeTemplate = _.template(HomeTemplate);
this.object = new ObjectModel({
id: <ANY_ID>
});
this.object.fetch({
success: function() {
self.render(self.object);
}
});
},
render: function(data) {
this.$el.html(this.homeTemplate);
console.log(data);
return this;
},
});
return homeView;
});
这取决于您的应用程序。如果您希望在模型的每一个小更改上更新整个视图,那么您需要绑定到
更改
(这可能对性能非常不利),或者根据您的应用程序绑定任何其他事件的类似内容。如果您自己处理小型DOM更新,并且只需要初始视图渲染,那么在获取之后,您只能渲染整个模板一次。基于这个小小的例子,你的问题没有真正的答案。它需要更广泛的应用程序视图、视图的内容和数据管理等。您不能决定应用程序中此视图需要什么吗?你到底为什么要问这个问题?谢谢你的评论,不,我不会有微小的改变,我只会在表格中显示对象,然后当单击一行时,你会被重定向到该对象的页面。我提出了这个问题,因为我不是前端专家,我希望遵循最佳实践,特别是当有几种方法导致“相同”的结果时。那么你肯定不想绑定到更改
事件。如果您的视图希望再次获取数据并在以后由于某些用户操作而重新渲染,则可以绑定到sync
事件。如果它只提取一次数据并显示它-在模型/集合提取成功后进行渲染就可以了。不要在上使用bind
或,更喜欢this.listeno(this.object,'sync',callback)
。您不需要self
,因为fetch
可以为回调提供context
选项。
define(
['models/object',
'text!templates/home.html',
'backbone'
],
function(ObjectModel, HomeTemplate, Backbone) {
var homeView = Backbone.View.extend({
initialize: function(options) {
var self = this;
this.homeTemplate = _.template(HomeTemplate);
this.object = new ObjectModel({
id: <ANY_ID>
});
this.object.bind('change', this.render, this);
this.object.fetch()
},
render: function(data) {
this.$el.html(this.homeTemplate);
console.log(data);
return this;
},
});
return homeView;
});