1

テーブル#1、テーブル#2、...テーブル#10などの配列のリストがあります

テーブル番号をクリックして、そのテーブルのリスト項目をパネルに表示します。

これがスニペットコードです。

HTML、唯一の問題はこの行です。テーブルのリスト番号をクリックすると、番号を動的に変更して更新したい。

<div data-bind="foreach: table[number].lines">  //  <--  this  line
            <p>
                <span data-bind="text: name"></span>, 
                <span data-bind="text: qty"></span> @
                <span data-bind="text: price"></span> = 
                <span data-bind="text: extendedPrice"></span>
            </p>
        </div>

オブジェクト配列

var table = new Array();
table[0] = new tableClass('one');
table[1] = new tableClass('two');
table[2] = new tableClass('three');
table[3] = new tableClass('four');

適用 KO

ko.applyBindings(table, $('#tablePos').get(0));

これ以上部分バインディングを使用したくありません。このページであまりにも多くのバインディングを使用したためです。

皆さん、ありがとうございました

4

2 に答える 2

2

ViewModel で currentTable を監視可能にする必要があります

var currentTable = ko.observable(table[0]);

それをcurrentTableにバインドします

<div data-bind="foreach: currentTable.lines">

テーブルを変更するときは、次のようにします。

currentTable(table[2]);

.

function InitViewModel() {
    function ViewModelFunction() {
        this.currentTable = ko.observable(table[0]);

        ... more observables

    }
    window.ViewModel = new ViewModelFunction();

    ko.applyBindings(window.ViewModel);
}

$(document).ready(function () {
    InitViewModel();
});

var table = new Array();
table[0] = new tableClass('one');
table[1] = new tableClass('two');
table[2] = new tableClass('three');
table[3] = new tableClass('four');

function onSomeEvent(number) {
    window.ViewModel.currentTable(table[number]);
}

...
as many bindings as you want to observables in the ViewModel
...
于 2013-08-22T18:46:30.590 に答える