У меня есть следующая функция, которая терпит неудачу при вызове:Магистральная модель - это функция?
getAll: function() {
return _todos.toJSON();
}
_todos.toJSON is not a function
он говорит мне.
Печать _todos
дает мне функцию по какой-то причине function child()
.
Почему это так?
Вот мой Backbone.Model
:
var _todos = Backbone.Model.extend();
getAll()
функция сидит в моем Collection
:
var TodoCollection = Backbone.Collection.extend({
model: _todos,
getAll: ...
});
Edit:
Я на самом деле подключения Backbone с React, так что может измените, как я это делаю.
В дополнение к getAll
у меня есть это:
areAllComplete: function() {
return _.every(this.pluck('complete'), true);
}
example Я после кажется положить getAll
и areAllComplete
в Model
и не использует Collection
вообще. Я не мог этого понять, и, поскольку я хочу, чтобы это было спокойным по дороге, я добавил Collection
и переместил getAll
и другой внутри.
Возможно, это не то, что я хочу.
Edit 2:
Согласно предостережением, выход getAll
как ожидается, будет Object
не array
. Вероятно, я должен добавить эту функцию к Model
не Collection
. Нужно думать об этом больше.
Я думаю, что это превратилось в еще один вопрос ...
Я вижу. Если вы хотите сохранить мой 'getAll()' в моей 'Collection', так как он еще не определен, как мне сделать вызов. 'this.' не работает из-за неопределенности. Или вы рекомендуете придерживаться этой функции снаружи? Я хочу иметь возможность называть 'TodoStore.getAll()' где 'TodoStore' является экземпляром' Collection'. – pushkin
Вы можете по-прежнему включать функцию 'getAll()' в свою коллекцию, она будет определена на вашем прототипе TodoCollection. Чтобы использовать его, вы создадите экземпляр своей коллекции, например, «var TodoStore = new TodoCollection();», а затем «ToDoStore.getAll();' – Jack
, где my 'getAll()' возвращает 'TodoCollection.toJSON()'? Я получаю 'TodoCollection.toJSON не функция' – pushkin