computed - knockout.js data-bind 複数



ノックアウト依存セレクトボックスの問題 (1)

このフィドルを見てみましょう

<select data-bind="options: packages,
                   optionsCaption: 'Select...',
                   optionsText: 'name',
                   value: selectedPackage">                 
</select>

<!-- ko with : selectedPackage -->

<select data-bind="options: locationOptions,
                   optionsCaption: 'Select...',
                   optionsText: 'location',
                   value: $parent.selectedLocation">
</select>   

<!-- /ko  -->

<span data-bind="with: selectedPackage">
    <p>You have chosen <b data-bind="text: name"></b> (<span data-bind="text: description">)</span></p>
        <!-- ko with : $parent.selectedLocation -->
        In location <b data-bind="text: location"></b>
    <p>Total is <b data-bind="text: $parents[1].total"></b></p>
  <!-- /ko  -->
</span>

フィドルを参照

私はそれが助けて欲しい

ショッピングカートの例のknockoutjsと同様に、私はパッケージのリストを持っており、価格は場所によって異なります。 依存選択ボックス(locationOptions)をビューにバインドできません:

<select data-bind="options: packages,
                   optionsCaption: 'Select...',
                   optionsText: 'name',
                   value: selectedPackage">                 
</select>

<select data-bind="options: locationOptions,
                   optionsCaption: 'Select...',
                   optionsText: 'location',
                   value: selectedLocation">
</select>

<span data-bind="with: selectedPackage">
    <p>You have chosen <b data-bind="text: name"></b> (<span data-bind="text: description">)</span>
    In location <b data-bind="text: location"></b></p>
    <p>Total is <b data-bind="text: total"></b></p>
</span>

ビューモデル:

function viewModel(packages, addons) {
    this.packages = packages;
    this.selectedPackage = ko.observable();
    this.selectedLocation = ko.observable();
    this.total = ko.computed(function(){
        var x = 0;
        return x;
    });
}

ここにjsfiddle http://jsfiddle.net/KN4P6/6/があります