des objets uniques à partir d'un observableArray de propriétés de l'objet

Je suis d'essayer d'extraire des propriétés uniques à partir d'un knockout.js observableArray des objets, pour remplir un menu déroulant. Étant nouveau knock-out, j'ai vraiment du mal avec cette!

Je veux itérer sur une liste de contacts, et de remplir un menu déroulant avec une valeur unique de chaque personne, de l'objet au sein de la observableArray. Donc, dans mon exemple de code ci-dessous, je veux remplir mon menu déroulant avec une liste de personnes "type" de la famille, ami, etc.

Cherche sur Google, j'ai trouvé une fonction similaire, mais elle ne retourne aucune valeur, même si j'ai de la console.consigner les résultats?

//dummy data more rows in actual code...

var people = [
    { name: "Contact 1", address: "1, a street, a town, a city, AB12 3CD", tel: "0123456789", email: "[email protected]", type: "family" },
    { name: "Contact 2", address: "1, a street, a town, a city, AB12 3CD", tel: "0123456789", email: "[email protected]", type: "friend" }
];


function ContactsViewModel(people) {

    var self = this;
    self.contacts = ko.observableArray(people);

    self.uniqueSelect = ko.dependentObservable(function() {
        return( ko.utils.arrayGetDistinctValues(self.contacts().type).sort());
    }, self);
};

ko.applyBindings(new ContactsViewModel(people));

Et le modèle HTML

<p>Show me: <select data-bind="options: ContactsViewModel.uniqueSelect"></select></p>

Toute aide appréciée, comme un noob, je suis perdu! Grâce

double + meilleure réponse: stackoverflow.com/questions/14437849/...

OriginalL'auteur Joe | 2012-11-13