0
這這個問題在這裏 KnockoutJS - Databind to a dictionary collectionKnockoutJS - 數據綁定到詞典集合 - 具有更新
我創建一個下降,由JSON向下選擇來自服務器。 然而,在創建後某些時候,我希望更新的數據。 我創建了一個小提琴 http://jsfiddle.net/LPrf3/
示出其中我就在眼前。我成功更新了select的可觀察數組。 但是...由於某種原因,你需要點擊進入從下拉列表中選擇下來,以便它刷新
的Javascript:
$(function() {
var destinationsFromServer = {"Europe":"Europe incl Egypt, Turkey & Tunisia","ANZO":"Australia & New Zealand","WorldwideUSA":"Worldwide (incl USA & Canada)"};
var updatedDestinationsFromServer = {"Arctic":"Includes Polar bears and seals","Antarctic":"Just Penguins"};
function mapDictionaryToArray(dictionary) {
var result = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
result.push({ key: key, value: dictionary[key] });
}
}
return result;
}
function viewModel() {
destinations= ko.observableArray(mapDictionaryToArray(destinationsFromServer));
selectedDestination= ko.observable();
updateDestinations = function()
{
destinations= ko.observableArray(mapDictionaryToArray(updatedDestinationsFromServer));
};
};
ko.applyBindings(new viewModel());
});
HTML
<select data-bind="options: destinations, optionsText: 'key', optionsValue: 'value', value: selectedDestination"></select>
<hr />
<div data-bind="text: selectedDestination"></div>
<button data-bind="click:updateDestinations">UPDATE</button>
我怎樣才能得到選擇更新?
它的工作原理...它最後的作品! :d 你知道討厭的就是我已經知道了。 但是我花了一些時間才找到地圖字典陣列解決方案,到那個時候心裏卻轉向果凍一樣的東西盯着約12小時後.... 非常感謝! – 2013-04-05 16:43:11