をドロップダウンするために、キー値オブジェクトをバインド:ノックアウトは、私は次のモデルを持っている
var allCategories = [{
id: 1,
name: 'Red'},
{
id: 5,
name: 'Blue'}];
function model() {
self = this;
self.name = ko.observable("");
self.categoryId = ko.observable(-1);
self.categoryName = ko.computed(function() {
if (self.categoryId() == -1) return "";
return getCategoryNameById(self.categoryId()).name;
});
}
function getCategoryNameById(id) {
return _.find(allCategories, function(cat) {
return cat.id == id;
});
}
私はカテゴリを選択するドロップダウンを提供したいが、私はそれをバインドする方法を見当もつかない。 私のモデルで間違ったアプローチを使用したことがあるかもしれませんが、それはサーバーからデータを取得する方法の可能性が高いため、JSをその周りにラップしようとしました。
私はこのような何か試してみました:
<select data-bind="options: categories, optionsText: 'name', value: 'id', optionsCaption: 'Categorie...'"></select>
をしかし、私はモデルcategoryId
にドロップダウン値を接続する方法を得ることはありません。
ここには、名前プロパティの作業バインディングを持つa fiddleがあります。
この素早く便利な答えのためのthx: – kannix