У меня странная проблема с моим приложением. Когда я создаю коллекцию, она была «пустой», если я печатаю ее, но когда я консолью. В этой коллекции внутри коллекции есть два массива twho внутри моделей. Ну это мой сценарий:Backbone render 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 –