Comment faire Backbone.js les articles de la Collection Uniques?

Dire que j'ai ces Backbone.js Modèle:

var Truck = Backbone.Model.extend({});

var truck1 = new Truck();
var truck2 = new Truck();

truck1.set("brand", "Ford");
truck2.set("brand", "Toyota");
truck3.set("brand", "Honda");
truck4.set("brand", "Ford");

Alors, disons que nous avons un Backbone.js Collection:

var TruckList = Backbone.Collection.extend({
  model: Truck,
  comparator: function(truck) {
     return truck.get("brand");
  };

});

Je suis une voiture collector, donc le temps de les ajouter chaque voiture de ma collection:

Trucks = new TruckList();
Trucks.add(truck1);
Trucks.add(truck2);
Trucks.add(truck3);
Trucks.add(truck4);

Simplement se concentrer sur la marque de l'attribut, truck4 est un doublon de truck1. Je ne peux pas avoir des doublons dans ma Collection. J'ai besoin de ma collection de valeurs.

Ma question est, Comment faire pour supprimer les doublons de mon Backbone.js Collection?

Dois-je utiliser Underscore.js pour cette? Si oui, quelqu'un peut-veuillez fournir un travail/praticable exemple de comment faire cela.

Assumer les suivantes:

1.La Collection n'est pas triée

  1. Le retrait doit être effectué sur la marque valeur de l'attribut

  2. Appel Ajax pour remplir chaque instance d'un Camion. Cela signifie que lors de l'ajout à une collection, vous n'avez pas accès pour le Camion propriétés.

Vous ne voulez probablement pas de doublons pour la collection en premier lieu. Si c'est le cas, peut-être TruckList a besoin de sa propre ajouter une fonction qui garde cette condition.
Notez que vous ne pouvez pas assigner des attributs comme ça. Vous devez utiliser le set méthode: truck1.set('brand', 'Ford'). Ensuite, vous pouvez faire plus tard: Trucks.pluck('brand') == ['Ford', 'Toyota', ...]
Sonne comme une bonne idée. Quelqu'un aurait un exemple de travail?
Merci pour la clarification - faute de frappe de ma part. Belle utilisation de l' _.plumer
Toujours à la recherche d'un exemple qui fonctionne!

OriginalL'auteur Keven Ruggish | 2011-06-20