Мне послан помощь со стороны многих советников в stackoverflow, часть моей проблемы решена, но осталось несколько проблем.Как создать коллекцию через глобальную переменную в backbone.js?
Я консультируюсь с ответом, и я попытался решить проблему, в результате я понял, что javascript namespacing pattren.
A namespacing pattern to avoid polluting the global namespace.
More details on this namespacing pattern
How do I declare a namespace in JavaScript?
Я страдаю от проблемы, что глобальная переменная успешно создана, однако, я не обрабатывать сгенерированную переменной.
collecton.js
var app = app || {};
(function() {
'use strict';
var collections = app.Collection = app.Collection || {};
collections.VideoLists = Backbone.Collection.extend({
model: app.Model,
initialize: function(){
console.log('load Collection');
}
});
app.Collection = collections.VideoLists;
})();
model.js
var app = app || {};
(function() {
'use strict';
var models = app.Model = app.Model || {};
models.Video = Backbone.Model.extend({
initialize: function(){
console.log('model create');
},
defaults:{
id : "1",
url : "/assets/videos/call/MOV01718.mp4",
imgSrc : "assets/img/call/1_thumbnail.png",
title: "call situation conservation"
}
});
app.Model = new models.Video();
})();
router.js
listRoute: function(id) {
//generate the collection using the listsection
var videoList = this.collection;
var getId = parseInt(id);
switch (getId) {
case 1:
new videoList([
{
id : "1",
url : "/assets/videos/call/MOV01718.mp4",
imgSrc : "assets/img/call/1_thumbnail.png",
title: "call situation conservation"
},
{
id : "2",
url : "/assets/videos/call/MOV01722.mp4",
imgSrc : "assets/img/call/2_thumbnail.png",
title: "call situation conservation"
}
]);
break;
//app.router init part
initialize: function() {
// create the layout once here
this.layout = new views.Application({
el: 'body',
});
// create model and collection once here
this.model = app.Model;
this.collection = app.Collection;
}
Пожалуйста, смотрите ниже изображение
Я думаю, что поколение было сделано правильно.
Но я не понимаю, почему я получаю эту ошибку.
Я попробовал сначала
1. Не создавать коллекции с new function
(как текущий мой источник)
2. Создайте переменную videoList
как объект.
3. Магазины Collection
в переменной.
4. Используйте функцию collection.create.
Например, list.create({id:'dasdsad'});
Однако эта попытка в конечном счете, дали тот же результат.
Как я могу их решить?
Вы включаете * collection.js * перед * model.js * script? придерживайтесь точки останова в * collection.js * и убедитесь, что 'app.Model' определен – mikeapr4