2016-11-02 8 views
0

行をクリックすると、マスター詳細ビューを実行する必要があります。私はcode in a branchhere's the commit linkです。オブジェクトをAurelia router.navigateでビューに渡す

let urlDetail = this.router.generate('energy-details', {model: this.model}); 
    this.router.navigate(urlDetail); 

これは機能しますが、クエリ文字列はひどいです。どのようにモデルをメモリに送りますか?

これは本当に難しい例でした。 https://github.com/softchris/aureliaが最高でした。 マスターディテールビューを行うためのより良い方法はありますか?私はAureliaを初めて使う人です。

http://localhost:5000/#/energy-details?model%5BdataSeriesId%5D=ES&model%5BcountryId%5D=392&model%5BcountryName%5D=Japan&model%5BtransactionCode%5D=01&model%5BcommodityTransactionId%5D=ES01&model%5BcommodityTransactionName%5D=Electricity%20-%20solar%20production%2C%20public&model%5Byear%5D=2000&model%5Bunit%5D=Kilowatt-hours%2C%20million&model%5Bquantity%5D=2&model%5BfootnoteSequenceId%5D=0

答えて

2

idを使用したくない場合に再考してください。とにかく多くの場合、より詳細なデータを得るために新しいクエリを作成する必要があります。

あなたのユースケースでは不可能な場合は、おそらくDataManagerシングルトンを持つことが理にかなっています。

  • リストと詳細ViewModelに挿入するDataManagerクラスを作成します。デフォルトでは、すべての注入されたクラスは、リストのViewModelでアウレリア
  • でシングルトンは、あなたのデータはあなたの方法getModelById(id)を呼び出すViewModelに詳細ではIDのみ
  • を渡すことによって、データマネージャー
  • ルーティングに保存されていることを確認していますDataMangerの
+0

"あなたはちょうどIDを使用したくない場合は再考"していただきありがとうございます。私は何かが組み込まれていると思っていたが、シングルトンは別の良い考えです。 – Aligned

+0

ああ、ごめんなさい。はい、全データを読み込む前に、詳細をすばやくプレビューするためにデータを渡すこともよくあります。しかし、ルートにデータを格納することで、ページの履歴を処理するためにシリアライズを重くすることができます。 – Benoit

関連する問題