JavaScript オブジェクトと KnockOutJS を使用してオプションを選択するための正しい構文がわかりません。以下の例はhttp://knockoutjs.com/documentation/options-binding.html、例 3 から直接取得しました。
<p>
Your country:
<select data-bind="options: availableCountries, optionsText: 'countryName', value: selectedCountry, optionsCaption: 'Choose...'"></select>
</p>
<div data-bind="visible: selectedCountry"> <!-- Appears when you select something -->
You have chosen a country with population
<span data-bind="text: selectedCountry() ? selectedCountry().countryPopulation : 'unknown'"></span>.
</div>
<script type="text/javascript">
// Constructor for an object with two properties
var Country = function(name, population) {
this.countryName = name;
this.countryPopulation = population;
};
var viewModel = {
availableCountries : ko.observableArray([
new Country("UK", 65000000),
new Country("USA", 320000000),
new Country("Sweden", 29000000)
]),
selectedCountry : ko.observable() // Nothing selected by default
};
</script>
備考にあるように、selectedCountry には何も選択されていません。デフォルトで米国を選択したいとしましょう。
私はこれを試しました:
selectedCountry : ko.observable([availableCountries()[1]])
そして、私はこれを試しました:
selectedCountry : ko.observable([new Country("USA", 320000000)])
私はおそらく本当に明白な何かを見逃しているだけです(私はひどい風邪と戦っています)...誰か私の見落としや誤解を指摘してもらえますか?