0

私はこのようなビューモデルを持っています、

        function viewModel() {
            this.Items = ['A', 'B', 'C'];
        }

        ko.applyBindings(new viewModel());

そして、私はこのようなものを印刷したいのですが、

    <div data-bind="foreach: {data: Items, as: 'item1' }">
        <span data-bind="text: item1"></span>
        <div data-bind="foreach: {data: Items, as: 'item2' }">
            <span data-bind="text: item2"></span>
        </div>          
    </div>

上記は機能しませんでした。アイテムが定義されていないというエラーが表示されます(2回目に使用しようとしている行で)。

だから、これをやってみようと思いました、

        function viewModel() {
            this.Items1 = ['A', 'B', 'C'];
            this.Items2 = ['A', 'B', 'C'];
        }

        ko.applyBindings(new viewModel());

    <div data-bind="foreach: {data: Items1, as: 'item1' }">
        <span data-bind="text: item1"></span>
        <div data-bind="foreach: {data: Items2, as: 'item2' }">
            <span data-bind="text: item2"></span>
        </div>          
    </div>

構文エラーが発生します。私は何が間違っているのですか?

ありがとう。

4

2 に答える 2

1

内部ループのコンテキストを変更する必要があります:(例は元の意図に基づいています)

<div data-bind="foreach: {data: Items, as: 'item1' }">
    <span data-bind="text: item1"></span>
    <div data-bind="foreach: {data: $parent.Items, as: 'item2' }">
        <span data-bind="text: item2"></span>
    </div>          
</div>
于 2013-02-20T19:27:11.137 に答える
0

配列内の各値を吐き出すだけの場合は、マークアップを次のように変更します。

<div data-bind="foreach: {data: Items, as: 'item1' }">
    <span data-bind="text: item1"></span>        
</div>

これがjsFiddleです:http: //jsfiddle.net/dymAQ/1/

于 2013-02-20T19:02:35.483 に答える