[Backbone]6. Collections.

Define a collection:json

var AppointmentList = Backbone.Collection.extend({model: Appointment});

RESET the json:app

var appointments = new AppointmentList();
var json = [
  {title: 'Back pain'},
  {title: 'Dry mouth'},
  {title: 'Headache'} 
];
appointments.reset(json);

 Get url and fetch json data:fetch

var AppointmentList = Backbone.Collection.extend({
  url: '/appointments',
  model: Appointment
});
var appointments = new AppointmentList();

appointments.fetch();

This Dr. Goodparts does not trust us when we tell him we are successfully loading data from the server into our collection.ui

To prove him wrong, display an alert with the number of items in the collection by listening for the reset event.url

var appointments = new AppointmentList();
appointments.fetch();
appointments.on('reset', function(){
    alert(appointments.length);
});

Wouldn't ya know, our users don't like getting alerts every time we fetch new data for our collection.spa

Update the fetch call below to not fire the reset event.code

//By default, when fetch or add model, the reset event will be triggered.
//TO disable the reset event, can use 
appointments.fetch({silent: true});

Use an event listener to log to the console the model's title anytime a model is added to the appointments collection.server

var appointments = new AppointmentList();
appointments.on('add', function(appointment){
    console.log(appointment.get('title'));
});

There are a lot of appointments in our collection and Dr. Goodparts wants a list of all appointment titles so he can arrange his equipment for the day.blog

Use the map iteration function to return an array of appointment titles and assign to the titles variable.ip

var titles = new Array();
appointments.map(function(appoinment){
    titles.push(appoinment.get('title'));
});
相關文章
相關標籤/搜索