0

ノックアウトの新しい 3.2 Component 仕様を使用して、オブジェクトのコレクションをレンダリングする foreach バインディングを内部に持つコンポーネントを作成しようとしています。foreach バインディング内のオブジェクトは、コンポーネントの VM の属性にアクセスする必要がありますが、foreach ループで一度その参照が失われるようです。

テンプレート内のコンポーネントのビュー モデルのルートに直接アクセスする簡単な方法はありますか?

コンポーネント VM:

function RelatedCompaniesViewModel(params) {
    var self = this;

    self.companies = params.companies;
    self.displayLimit = ko.observable(3);

} 

コンポーネント テンプレート:

<!-- ko foreach: companies() -->
    <li data-bind="visible: $index() < displayLimit()">
       ...more bindings...
    </li>
<!-- /ko -->

(returns a "displayLimit is not defined" error)  
4

1 に答える 1

3

に変更displayLimit()$parent.displayLimit()ます。

コンポーネント テンプレート:

<!-- ko foreach: companies() -->
    <li data-bind="visible: $index() < $parent.displayLimit()">
       ...more bindings...
    </li>
<!-- /ko -->
于 2014-11-04T13:31:22.373 に答える