我有一個奇怪的問題到我的應用程序。 當我渲染一個集合時,它是「空的」,如果我打印它,但是當我console.log這個集合內集合有模型內的twho數組。 嗯,這是我的腳本:骨幹渲染setTimeOut
define([
'jquery',
'underscore',
'backbone',
'text!templates/folder.html',
'models/folder',
'collections/folder',
], function($, _, Backbone, FolderTemplate, FolderModel, FolderCollection){
var FolderView = Backbone.View.extend({
el:$('#folder'),
template:_.template(FolderTemplate),
initialize: function(){
this.render();
},
render: function(){
console.log(this.collection.models);
}
});
return FolderView;
});
叫我用它的另一個應用程序中的觀點:
this.folders = new FolderCollection();
this.folders.fetch({ data: { dir: 'uploads'} });
this.foldersView = new FolderView({collection: this.folders});
有了這個程序,console.log(this.collection.models);
是空 但是,如果我做這樣的事了的setTimeout它作品中的console.log返回我正確的數組:
define([
'jquery',
'underscore',
'backbone',
'text!templates/folder.html',
'models/folder',
'collections/folder',
], function($, _, Backbone, FolderTemplate, FolderModel, FolderCollection){
var FolderView = Backbone.View.extend({
el:$('#folder'),
template:_.template(FolderTemplate),
initialize: function(){
var here = this;
setTimeout(function(){
here.render();
},800);
},
render: function(){
console.log(this.collection.models);
}
});
return FolderView;
});
如何使用this.render()
沒有SETTIM eOut,因爲我認爲做出這樣的事情是不正確的或不是邏輯的。
感謝
這完美的作品!非常感謝+1 –