2013-11-17 3 views
0

КоллекцииВызова модели из коллекции

define([ 
    'jquery', 
    'underscore', 
    'backbone' 
], function($, _, Backbone){ 
    console.log("Loaded"); 

    var Jobs = Backbone.Collection.extend({ 
     url: function() { 
      return 'http://domain.com/api/jobs?page='+this.page+'' 
     }, 
     page: 1 
    }); 
    return Jobs; 
}); 

Модель

define([ 
    'underscore', 
    'backbone' 
], function(_, Backbone){ 
    var JobFilterModel = Backbone.Model.extend({ 
     defaults: { 
      T: '1', 
      PT: '1', 
      C: '1', 
      I: '1' 
     } 
    }); 
    // Return the model for the module 
    return JobFilterModel; 
}); 

В одном из моего зрения, я SET модель

var jobListFilterModelUpdate = new JobListFilterModel(); 
      jobListFilterModelUpdate.set({value:isChecked}); 

Я пытаюсь получить модель из коллекции поэтому я могу отправить правильный QUERY с URL-адресом.

Вопрос 1

Как я извлечь из модели из коллекции

Вопрос 2

Будет восстановлена ​​коллекция будет обновлена ​​модель с данными я Установите в View?

ответ

1

Когда вы объявляете Collection вам нужно указать model свойства, что-то вроде:

var Jobs = Backbone.Collection.extend({ 
     url: function() { 
      return 'http://punchgag.com/api/jobs?page='+this.page+'' 
     }, 
     page: 1, 
     model: JobFilterModel 
    }); 

После создания новой модели, необходимо добавить его в коллекцию (если у вас есть jobsCollection созданных):

var jobListFilterModelUpdate = new JobListFilterModel(); 
jobListFilterModelUpdate.set({value:isChecked}); 
jobsCollection.add(jobListFilterModelUpdate); 

Ответ 1

Вы можете retrie ve модель из коллекции на основе id, collection.get(id). Здесь JobFilterModel, похоже, не имеет идентификатора (вы можете установить idAttribute свойство Model для создания пользовательского свойства id). Backbone также создает уникальные идентификаторы на стороне клиента, но я не знаю, как они могут вам помочь. Если вы хотите получить модель, основанную на любом свойстве модели, вы можете использовать collection.findWhere() или collection.where().

Ответ 2

Да. Это будет, но это зависит от того, как ссылка View на Collection.

+0

У моей коллекции есть URL-адрес, я хочу получить данные из модели, прежде чем запускать URL-адрес. Хмм Как я могу получить все данные внутри дефолта (модели) и прочитать его из коллекции? – CodeGuru

Смежные вопросы