1

リスト内のネストされたアイテムが変更されたときに、ビューを更新しようとしています。

メイン リストは ですrt.projects()。ID を使用してネストされた要素を見つけ、それを として呼び出しmatch、ネストされたリストに 1 つの項目を追加しますSelectedMembersForProject(

ビューに新しく追加された値を更新したいのですが、どうすればよいですか?

ここに私が書いたコードがあります:

case "Project":
    debugger
    var match = ko.utils.arrayFirst(rt.projects(), function (item) {
        return item.Soid === ui.item.SourceSoid;
    });
    debugger;
    if (match) {
        var indexVal = rt.projects.indexOf(match)
        var AddItem = {
            MemberProfileId : ui.item.MemberSoid,
            MembeImageName: ui.item.ImageFileName,
            MemberName: ui.item.Name
        };
        match.SelectedMembersForProject.push(AddItem);
        rt.projects.replace(rt.projects()[indexVal], match);
    }
    break;

それでも、新しく追加した値が VIEW! に表示されません。何が問題なのですか?

次の画像は、さらにアイデアを得るはずです http://postimg.org/image/jx8n6516f/ http://postimg.org/image/5wx6cg4fn/

4

1 に答える 1

1

投稿したコードのように見えますが、問題はSelectedMembersForProjectオブジェクトがobservableArrayではないことです。データがサーバーから取得されたときにできることは、データセットをノックアウトしやすいモデルに変換することです。

書くのは楽しくありませんが、それで問題は解決するはずです。

実際の例については、ここを参照してください (子配列監視可能な配列である場合): http://jsfiddle.net/hjhyn/

..そしてここで問題を再現します(子配列が監視可能な配列ではない場合):http://jsfiddle.net/hjhyn/1/

于 2013-06-03T15:17:33.757 に答える