2016-09-02 31 views
0

從一個路由到另一個路由時,我想傳遞一些數據(特別是數組)。這怎麼可能?在Ember 2.x中路由傳遞參數

爲什麼我們不能在數組中使用query-params?

轉換過程中存儲數據在特定服務中是否存在問題?

注: 我知道有一些老問題,這些問題幾乎與這個問題相同。但他們選擇的答案不適用於Ember 2.x.這些問題是:12

回答

1

我不確定queryparams是否不能與數組一起工作,因爲我只使用它與單個ID,但它不會是一個很好的解決方案,即使它工作,有限制您可以發送多少參數,你不應該打擾任何用戶的數據。

  1. 只需創建一個模型來保存你的本地使用的數據,所以你可以簡單地使用餘燼店

  2. 使用服務you'll在你想使用你的數據的每個控制器注入

我寧願模型/存儲變種所以you'll能夠觀察到,只是按照正常的流程,這也是很好的,如果別人有,以保持你的代碼。

+1

你想使用查詢參數而不是商店的原因是因爲你使用書籤/共享URL的能力。 – tarponjargon

0

修訂

用 「transition.data」 測試後;沒有更新歷史似乎是我們的問題。所以我們再次使用「queryParams」。約束是:不動作傳遞路線

OLD ANSWER

我使用transition對象之間的複雜的對象爲這一目的而路由如下所示:

let transition = router.transitionTo(route, model); 
transition.data[propName] = propValue; 

另外我寫了一個組件來使用這段代碼作爲鏈接。