2016-11-02 4 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가 가장 좋습니다. 마스터 디테일 뷰를 수행하는 더 좋은 방법이 있습니까? 나는 아우렐 리아를 처음 보았습니다.

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 싱글 톤을 사용하는 것이 좋습니다.

  • List 및 Detail ViewModel에 삽입하는 DataManager 클래스를 만듭니다. 기본적으로 모든 주입 클래스는 목록 뷰 모델에서 아우렐 리아
  • 의 싱글은, 데이터가 당신의 방법 getModelById (ID)를 호출의 ViewModel 세부 정보 창에서 ID 만
  • 을 전달하여 DataManager에
  • 라우팅에 저장되어 있는지 확인하다 DataManger
+0

"ID를 사용하고 싶지 않다면 재검토 해 주셔서 감사합니다." 나는 무언가가 만들어 졌다고 생각했지만, 싱글 톤은 또 다른 좋은 생각이다. – Aligned

+0

아하하, 죄송합니다. 예 전체 데이터를로드하기 전에 데이터를 전달하여 세부 정보를 빠르게 미리 볼 수도 있습니다. 그러나 데이터를 경로에 저장하면 페이지 히스토리를 처리하기 위해 일련의 작업이 무거워 질 수 있습니다. – Benoit