2016-08-30 40 views
0

私は、observableArrayの追加/削除アクションに基づいて更新する必要があるko.computedにぎっしり詰まっていますが、そうではありません。だから、私が観察配列を持って、ここにある:Ko.computedは更新されません

vm.selTopics({ 
    topics: [], 
    members: [], 
    children: [] 
}); 

それから私は、メイントピックの配列内のアイテムのリストのチェックボックスを持っている、と私は、各項目に計算されたを適用し、リストを印刷します。 vm.selTopics()で項目を追加または削除し、vm.selTopics()で項目が見つかるたびにチェックボックスをオンにすると、いつでも計算結果が更新されます。

次に、チェックボックスをオンにして、現在のメンバーチェックボックスとその子チェックボックスをチェックするチェックボックスを表す別の計算式があります。

このチェックボックスをクリックすると、計算されたmember.isSelectedは再評価されません。 (ちょうど正確に言えば、vm.selTopics()は一次元の配列であり、すべて正常に動作しました...)。たぶん私は、トリガーがどのように機能するかについて、重要な部分を欠いているかもしれません。ご協力いただきありがとうございます。

<input\ 
    type="checkbox" 
    name="topics" 
    data-bind=" 
    checked: isSelected, 
    value: tid, 
    "> 
<!-- Checkbox to select current member & its children --> 
<label data-select="multi" data-bind=" 
    css: isOn, 
    visible: $data.children.length, 
    event: { mouseover: $component.highlight, mouseout: $component.unlight }, 
    "> 
    <input type="checkbox" 
     data-bind="checked: isActive" 
    > 
</label> 
<!-- /ko --> 
+0

こんにちは、あなたがプロパティ – frankfg

答えて

1

その性質が観察なりません観測可能でオブジェクトの保存:

UPDATEここ

はHTMLです。配列selTopics.membersの変更に反応したい場合は、それも観測可能でなければなりません。通常、オブジェクトが常にアトミックに更新されない限り(AJAX呼び出しからのデータなど)、オブジェクトを観測可能にする必要はありません。

vm.selTopics = { 
    topics: [], 
    members: ko.observableArray(), 
    children: [] 
}; 
+0

こんにちはマイケル、おかげで多くのことを結合しているかを確認するためにHTMLを共有しています。ユーザーがアイテムを追加/削除でき、他のコンポーネントの一部のオブザーバブルを更新するので、オブザーバブルにする必要があります。私が見たいオブジェクトのそれぞれの特性を観察できるようにする理由はありますか?パフォーマンス? –

関連する問題