1

私は本当にノックアウトを始めたばかりで、今のところかなり印象的です. それに伴い、私が直面している問題もあります。

バインドされたオブジェクトのリストを取得しようとしています。オンをクリックすると、そのモデルを取得して別のビューにバインドしてさらに編集したいのですが、問題はありません。私が遭遇した問題は、同じ要素に複数回バインドできないというエラーが表示されることです。私はそれを回避するために使用できることを読みましたko.cleanNode([domElement])が、それは実際には内部で使用することを意図しています. 私はいくつかの検索を行っており、人々はあなたが使うべきwithだと言っていますが、それは私がやりたいことには当てはまらないと思います.

バインディングを適用する方法はありますが、基になるモデル コンテキストを更新するだけですか?

簡略化されたjsfiddle の例。私の js コードは 119 のように始まり、その上に ko マッピング プラグインがあります。

4

1 に答える 1

2

まず、外部リソースをフィドルに貼り付けるのではなく、外部リソースを使用してフィドルに追加します。

次に、問題について、このようなことを行う最も簡単な方法はSelectedItem、ビュー モデルにプロパティを設定し、子ビューをそれにバインドすることです。このようなもの:

var MyViewModel = function() {
    var self = this;
    self.MyItems = ko.observableArray();
    self.SelectedItem = ko.observable();
}

var MyChildViewModel = function() {
    var self = this;
    self.SomeProperty = ko.observable();
}

MyItemsのインスタンスを入力して、子として持ちたいアイテムにMyChildViewModel設定し、子ビューをにバインドします。SelectedItemMyItemsSelectedItem

<div id="theChildView" data-bind="with: SelectedItem">
    <span data-bind="text: SomeProperty"></span>
</div>
于 2013-08-27T15:31:10.343 に答える