0

KnockoutJSを使用してユーザーのリストを表示しています。同じページで、リンクがシャドウボックスのモーダルウィンドウをトリガーします。ユーザーがモーダルを閉じるときに、ユーザーのリストを更新します。Shadowboxモーダルトリガーからのコールバック関数はすでにありますが、ユーザーのリストを更新するにはどうすればよいですか?

        function User(data) {
            this.firstname = ko.observable(data.firstname);
            this.lastname = ko.observable(data.lastname);
            this.fullname = ko.computed(function () {
                return this.firstname() + " " + this.lastname();
            }, this);
            this.userfunctions = ko.observable(data.userfunctions);
            this.phonework = ko.observable(data.phonework);
            this.phonemobile = ko.observable(data.phonemobile);
            this.email = ko.observable(data.email);
            this.editurl = ko.observable(data.editurl);
        }

        function UserListViewModel() {
            var self = this;
            self.users = ko.observableArray([]);

            self.users.loading = ko.observable(false);

            self.users.loading(true);
            $.getJSON("/UserJSON.ashx", {
                requestType: "userList",
                pageId: '12',
                companyId: '1'
            },
            function (allData) {
                var mappedUsers = $.map(allData, function (item) { return new User(item); });
                self.users(mappedUsers);
                self.users.loading(false);
            });
        }

        ko.applyBindings(new UserListViewModel());
4

1 に答える 1

0

ノックアウトマッピングを見たことがありますか?サーバーからのデータ更新を処理します。

http://knockoutjs.com/documentation/plugins-mapping.html

ノックアウトマッピングからロードされ、そこから更新できるビューモデルに「データ」プロパティを作成します。私はjsfiddleに取り組み、この回答を更新します。

アップデート

私は JSFiddle に取り組んでいましたが、すでに完了しているものを見つけました :-) (ありがとう RP Niemeyer!)

http://jsfiddle.net/rniemeyer/EDC7q/

更新 2

JSFiddle を更新しました: http://jsfiddle.net/sb2BX/1/

これに:http://jsfiddle.net/JasonMore/sb2BX/3/

動作を確認するには、まず「初期データの読み込み」をクリックしてから、「シャドウボックス コールバック」をクリックします。これはあなたの質問に答えていますか?

于 2012-05-03T15:56:42.017 に答える