ドロップメニューにデータを入力するために、オブジェクトのknockout.jsobservableArrayから一意のプロパティを抽出しようとしています。ノックアウトに慣れていないので、私はこれに本当に苦労しています!
連絡先リストを繰り返し処理し、observableArray内の各personオブジェクトからの一意の値をドロップメニューに入力します。したがって、以下のコード例では、ドロップメニューに「タイプ」(家族、友人など)のリストを入力したいと思います。
Googleを見ると、同様の関数が見つかりましたが、結果をconsole.logに記録しても、値が返されません。
//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: "anemail@me.com", type: "family" },
{ name: "Contact 2", address: "1, a street, a town, a city, AB12 3CD", tel: "0123456789", email: "anemail@me.com", 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));
そしてHTMLテンプレート
<p>Show me: <select data-bind="options: ContactsViewModel.uniqueSelect"></select></p>
どんな助けでもありがたいです、初心者として私は迷子になっています!ありがとう