後的選擇而設定字幕我有選擇結合到屬性對象的ko.observableArray()
:敲除:可觀察到的變化的陣列
<select title="Select Property"
data-bind="options: $root.properties,
optionsCaption: '- Select Property -',
optionsText: 'name',
optionsValue: 'typeId',
value: $root.columns()[index]
"></select>
當有選擇選擇元件顯示了所選擇的名稱。這工作很好,但現在我需要在選擇後修改properties
observableArray。只要我這樣做,選擇將恢復到optionsCaption。
在this頁面的底部是部分
注2:後期處理生成的選項
我想這能幫助我設定選擇回顯示name
但我避風港想不出如何。
禁止我可以使用JQuery來抓取選擇並設置名稱?
我想是這樣的:
$("select[title='Select Property']").setAttribute();
但選擇在劫的foreach產生的,所以我必須指定元素的索引,以得到它(如何?),甚至然後我不確定如何讓JQuery在淘汰賽中表現出色。
我提過我還在學習這些東西嗎?
謝謝。
------------------編輯------------------
爲了說明我是怎麼做的,中號修改陣列:
我碰到subscribeChanged
的newValue
和oldValue
,然後
if (typeof(newValue) != "undefined") {
var newProperty = model.allProperties[newValue];
if (model.properties.indexOf(newProperty) != -1) {
model.properties.splice(model.properties.indexOf(newProperty), 1);
}
model.propertiesInUse[newValue] = index;
}
if (typeof(oldValue) != "undefined") {
var oldProperty = model.allProperties[oldValue];
if (model.properties.indexOf(oldProperty) == -1) {
model.properties.unshift(oldProperty);
}
if (model.propertiesInUse[oldValue]) {
delete model.propertiesInUse[oldValue];
}
}
請出示你的模型代碼片段,你修改observableArray?出於好奇,我可以知道爲什麼你需要修改應該仍然存在的下拉屬性?! –
嗨,我把週末休息了:)。基本上,我有一堆列的屬性下拉列中的對象。當您選擇要在一列中顯示的屬性時,該屬性不應在其他列中可用(無理由具有重複的列)。我使用'subscribeChanged'函數從select中選擇newVal,oldVal並編輯數組,以便在選擇/取消選擇時刪除並添加這些屬性。 – MayNotBe
順便說一句,subscribeChanged函數:https://github.com/knockout/knockout/issues/914 – MayNotBe