ノックアウトは、レコードマッピングプラグインのリストに新しい行を追加します

ShaneKm

私は次のようにビューモデルを更新するためにマッピングプラグインを使用しています:

        $.ajax({
            type: "POST",
            url: url,
            data: data,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (json) {
                if (json.Page == 1) {
                    ko.mapping.fromJS(json, {}, self);
                } else {
                    self.List().push(ko.mapping.fromJS(json.List));
                }
                console.log(ko.toJSON(self.List()));
            },
        });

ただし、List()監視可能配列を更新する代わりに(ajax呼び出しの完了時に新しいアイテムのみを追加します-2ページ目(DBからの次のいくつかのアイテム))、コンソール出力に新しいリスト=>注意 "["要素を追加します。

AJAX応答(json)

{"DiscountType": "Transaction"、 "List":[{"ActivationDate": "/ Date(1427215761818)/"、 "CustomerName": "Another two 2"、 "CustomerNumber":4328、 "Percent":20、 "HasDiscount":true}、{"ActivationDate": "/ Date(1428079761818)/"、 "CustomerName": "Another tree"、 "CustomerNumber":1212、 "Percent":20、 "HasDiscount":true}]、 "2ページ}

コンソール出力:

[{"ActivationDate": "/ Date(1388556000000)/"、 "CustomerName": "Test1Inc。"、 "CustomerNumber":10032、 "Percent":20、 "HasDiscount":true}、{"ActivationDate": " / Date(1426783761818)/ "、" CustomerName ":" Another One 1 "、" CustomerNumber ":5174、" Percent ":20、" HasDiscount ":true}、[{" ActivationDate ":" / Date(1427215761818)/ "、" CustomerName ":" Another two 2 "、" CustomerNumber ":4328、" Percent ":20、" HasDiscount ":true}、{" ActivationDate ":" / Date(1428079761818)/ "、" CustomerName ":"別のツリー "、" CustomerNumber ":1212、"パーセント ":20、" HasDiscount ":true}]]

私は何が間違っているのですか?

カイル・ヘイル

返された配列の個々の要素をプッシュするには、次のようにします。

success: function (json) {
    if (json.Page == 1) {
        ko.mapping.fromJS(json, {}, self);
    }
    else {
        json.List.forEach( 
            function(element) {
               self.List.push( ko.mapping.fromJS(element) );
            } );
        }
    console.log(ko.toJSON(self.List()));
        }

var vm = function() {
  var self = this;
  self.List = ko.observableArray([]);
  self.initiate = function() {
    json = JSON.parse('{"DiscountType":"Transaction","List":[{"ActivationDate":"/Date(1427215761818)/","CustomerName":"Another two 2","CustomerNumber":4328,"Percent":20,"HasDiscount":true},{"ActivationDate":"/Date(1428079761818)/","CustomerName":"Another tree","CustomerNumber":1212,"Percent":20,"HasDiscount":true}],"Page":2}');
    json.List.forEach(function(entry) {
      self.List.push(ko.mapping.fromJS(entry));
    });
  };
};
vm = new vm();
ko.applyBindings(vm);
vm.initiate();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<script src='https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js'></script>
<html>

<div data-bind='foreach: List'>
  <div data-bind='text: ActivationDate'></div>
</div>

</html>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プロトコルハンドラーをデスクトップアプリに変更します(URL:IRCからmIRCへのマッピングなど)

分類Dev

Androidはグリッドレイアウトに複数のフラグメントを追加します

分類Dev

Ubuntu 12.04はアップグレード後に起動時にスタックします、今私は13.10の新しいコピーをインストールしたいと思います

分類Dev

Ubuntu 12.04はアップグレード後に起動時にスタックします、今私は13.10の新しいコピーをインストールしたいと思います

分類Dev

(Gridbagレイアウト)グラフィックコンポーネントが別のグリッドにクリップしている、理由は不明

分類Dev

テンプレートとして使用するGoogleスプレッドシートドキュメントの新しいコピーを自動的に作成するブラウザブックマークレットを作成できますか?

分類Dev

URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

分類Dev

ノックアウトビューモデルマッピングはサブスクリプションの起動を停止します

分類Dev

ユーザーNSContactsの友達検索ページが非常に遅い+「このアプリケーションはバックグラウンドスレッドから自動レイアウトエンジンを変更しています」

分類Dev

FirefoxWebExtensionのバックグラウンドスクリプトからクリップボードにテキストをコピーします

分類Dev

使用方法、ドラッグスタート、ドラッグエンド、クリック、マウスアップ、マウスダウンを3つのdivで一緒に行い、それらをすべて別々に、ただし等しく保つ方法

分類Dev

ノックアウトドロップダウンオプションはコールバックをレンダリングします

分類Dev

Googleドキュメント-プログラムでアウトラインペインのアイテムにマウスクリックを送信します

分類Dev

バックグラウンドジョブを解析して、21レコード後に複数のレコードストップを追加します

分類Dev

アンチウイルスプログラムがビルドのパフォーマンスに影響を与えている可能性があります。AndroidStudioは次のディレクトリをチェックしました。

分類Dev

アンダースコアテンプレートでアイテムルックアップ/マッピングを実行します

分類Dev

laravelリダイレクトは、複数の古いスラッグを新しいスラッグにルーティングします

分類Dev

スクレイピングに使用されるlxmlコードを使用したforループは、「リストインデックスが範囲外です」エラーを示しますが、2つのインスタンスで機能します

分類Dev

GCPslackチュートリアル 'スラッシュコマンド'; グーグルクラウド機能のデプロイに失敗しました

分類Dev

コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

分類Dev

Tomcat 5.5で、プログラムで特定のサーブレットインスタンスを検索したり、新しいマッピングを追加したりするにはどうすればよいですか?

分類Dev

角度グリッドには、インライン剣道グリッドのエディターテンプレート(リアクティブフォーム)を含む列があります。テンプレートコントロール(テキストボックス)とフォームはリンクしません

分類Dev

マウスを使用せずに、現在の作業ディレクトリをコマンドラインにコピーアンドペーストします

分類Dev

フレックスコンテナ内の要素は、cssグリッドレイアウトに従って「フォーマット」されています

分類Dev

コメントやセル間に新しい行を追加せずに、jupyterラボノートブックをスクリプトに変換します

分類Dev

テーブルに新しい行を追加すると、ドロップダウンリストのみがコピーされます

分類Dev

「プラグインのルートディレクトリでコマンドを実行してPHPクライアントをインストールするには」どうすればよいですか?

分類Dev

マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

分類Dev

カスタムドロップダウンリスト(datatablesプラグイン)を正しいレイアウトで追加します

Related 関連記事

  1. 1

    プロトコルハンドラーをデスクトップアプリに変更します(URL:IRCからmIRCへのマッピングなど)

  2. 2

    Androidはグリッドレイアウトに複数のフラグメントを追加します

  3. 3

    Ubuntu 12.04はアップグレード後に起動時にスタックします、今私は13.10の新しいコピーをインストールしたいと思います

  4. 4

    Ubuntu 12.04はアップグレード後に起動時にスタックします、今私は13.10の新しいコピーをインストールしたいと思います

  5. 5

    (Gridbagレイアウト)グラフィックコンポーネントが別のグリッドにクリップしている、理由は不明

  6. 6

    テンプレートとして使用するGoogleスプレッドシートドキュメントの新しいコピーを自動的に作成するブラウザブックマークレットを作成できますか?

  7. 7

    URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

  8. 8

    ノックアウトビューモデルマッピングはサブスクリプションの起動を停止します

  9. 9

    ユーザーNSContactsの友達検索ページが非常に遅い+「このアプリケーションはバックグラウンドスレッドから自動レイアウトエンジンを変更しています」

  10. 10

    FirefoxWebExtensionのバックグラウンドスクリプトからクリップボードにテキストをコピーします

  11. 11

    使用方法、ドラッグスタート、ドラッグエンド、クリック、マウスアップ、マウスダウンを3つのdivで一緒に行い、それらをすべて別々に、ただし等しく保つ方法

  12. 12

    ノックアウトドロップダウンオプションはコールバックをレンダリングします

  13. 13

    Googleドキュメント-プログラムでアウトラインペインのアイテムにマウスクリックを送信します

  14. 14

    バックグラウンドジョブを解析して、21レコード後に複数のレコードストップを追加します

  15. 15

    アンチウイルスプログラムがビルドのパフォーマンスに影響を与えている可能性があります。AndroidStudioは次のディレクトリをチェックしました。

  16. 16

    アンダースコアテンプレートでアイテムルックアップ/マッピングを実行します

  17. 17

    laravelリダイレクトは、複数の古いスラッグを新しいスラッグにルーティングします

  18. 18

    スクレイピングに使用されるlxmlコードを使用したforループは、「リストインデックスが範囲外です」エラーを示しますが、2つのインスタンスで機能します

  19. 19

    GCPslackチュートリアル 'スラッシュコマンド'; グーグルクラウド機能のデプロイに失敗しました

  20. 20

    コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

  21. 21

    Tomcat 5.5で、プログラムで特定のサーブレットインスタンスを検索したり、新しいマッピングを追加したりするにはどうすればよいですか?

  22. 22

    角度グリッドには、インライン剣道グリッドのエディターテンプレート(リアクティブフォーム)を含む列があります。テンプレートコントロール(テキストボックス)とフォームはリンクしません

  23. 23

    マウスを使用せずに、現在の作業ディレクトリをコマンドラインにコピーアンドペーストします

  24. 24

    フレックスコンテナ内の要素は、cssグリッドレイアウトに従って「フォーマット」されています

  25. 25

    コメントやセル間に新しい行を追加せずに、jupyterラボノートブックをスクリプトに変換します

  26. 26

    テーブルに新しい行を追加すると、ドロップダウンリストのみがコピーされます

  27. 27

    「プラグインのルートディレクトリでコマンドを実行してPHPクライアントをインストールするには」どうすればよいですか?

  28. 28

    マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

  29. 29

    カスタムドロップダウンリスト(datatablesプラグイン)を正しいレイアウトで追加します

ホットタグ

アーカイブ