В моем приложении у меня есть коллекция Магистраль, которая выглядит следующим образом:Поиск коллекции в позвоночнике
App.Collections.SurveyReportSets = Backbone.Collection.extend({
url: '/survey_report_sets',
model: App.Models.SurveyReportSet,
byReportType: function(report_type) {
return this.where({report_type: report_type});
},
byReportOrganizationType: function(report_organization_type) {
return this.where({report_organization_type: report_organization_type});
}
});
Это ищет работает отлично, когда я использую только один из них. Но когда я пытаюсь использовать оба, они не работают. Вот как я использую его:
var my_collection = this.collection.byReportType(this.model.get('report_type')).byReportOrganizationType(this.model.get('report_organization_type'))
Backbone возвращает мне следующую ошибку:
TypeError: this.collection.byReportType(...).byReportOrganizationType is not a function
Что я делаю не так?
Я не предлагаю это делать. Это вызывает конструктор коллекций и делает процессор больше работы, чем необходимо, только для стиля кодирования. –
Хм, так как я могу решить эту проблему по-другому? –
Просто попросите методы принять необязательный параметр (массив моделей). вызовите первый метод, передайте результаты в следующий метод. Если необязательный параметр не передан, пусть фильтр фильтрует сам набор ... вы можете использовать '_.where' в результирующем массиве моделей –