0

私は現在 kendoUI をテストし、小さな webapp を開発しています。

何らかの理由で、ビューから別のビューに dataSource.datas を渡す必要があります。これを行うには、sessionStorage を使用します。dataSource.data() を sessionStorage に配置しようとすると、戻り値が空になります。

dataSource.data() が正しく挿入/返されるかどうかをテストするためにログを配置するときは、こちらを参照してください

dataSource.data() ログ

ただし、ma dataSource をテストするためにログを置くと、次の図に示すように、_data が空ではないことがはっきりとわかります。

dataSource _data

誰かが私の問題の原因を知っていましたか?

編集

dataSource を sessionStorage に追加する方法を示すコードは次のとおりです。

var qui   = (e.view.params.qui)  ? e.view.params.qui  : "";
var quoi  = (e.view.params.quoi) ? e.view.params.quoi : "";

dataSourceFournisseurs = new kendo.data.DataSource({
        transport : {
             read : {
                   url:"annuaire.json",
              dataType:"json"
                     }
        },
        schema : {
            data : "data",
                   model : {
                       DISTANCE: function() {
                           var lat   = this.get("LATITUDE");
                           var lng   = this.get("LONGITUDE");

                           var distance = APP.distanceBetweenCoords(lat, lng);

                           return "à " + distance + "km";          
                        }
                   }
       },
               sort : {
            field : "LIBELLE",
              dir : "asc"
       },
       filter: [
            { field: "LIBELLE", operator: "contains", value: qui },
            { field: "NAFLIBELLE", operator: "contains", value: quoi }
       ]

});
console.log(dataSourceFournisseurs);
session.setValueObject("liste", dataSourceFournisseurs.data());

そして、これが私がそれを取得する方法です:

var datas = session.getValueObject("liste");
console.log(datas);

PS :

  • setValueObject と getValueObject は、設定したデータを Stringify し、取得したデータを解析するために作成した 2 つのメソッドです (1 年以上使用している完全に機能するメソッドがあります)。

  • 2 つの console.log は、上の図を表すものです (図 1 は 2 番目のログ、図 2 は最初のログ)

編集終了

4

1 に答える 1

0

を使ってみてくださいdataSourceFournisseurs.view()。これにより、すべてのデータが得られるはずです。使用dataは初期構成を目的としており、データを取得する方法として使用することを意図したものではありません。

ボンヌチャンス!

于 2014-10-13T17:56:35.620 に答える