2015-12-08 40 views
1

我在ngModel中遇到了一些麻煩。Angularjs - 「陣列」中的網址和ngModel

可以想象我有一個電影DATABSE,我想尋找一部電影,其中出現的一些演員:

$scope.search = { 
    actors: [1, 2, 3] // actors' ID 
}; 

我使用$ location.search。爲了發送一個數組,我不得不 「解析」 的模式,並將其發送:

{ 'actors[]': [1, 2, 3] }; 

所以將URL:搜索演員%5B%5D = 1 &演員%5B%5D = 2 &演員%5B%5D = 3(我使用PHP作爲後端)。

問題是當我使用該URL刷新頁面時,我想要加載該輸入,並且必須執行「反向」操作,以便「actors []」必須是「actors」,因爲ngModel鍵是「演員」。

我覺得我過於複雜,有更好的方法來做到這一點。

任何幫助,將不勝感激。

Thx!

編輯:

Plunkr(URL錯誤並分析產生的)

http://plnkr.co/edit/aYawMwqRrCjN9ZBxB6Us?p=preview

+0

你不需要[]。 {'actors':[1,2,3]}將使用$ location.search來執行 –

+0

@PitchaiPazhani url生成不正確 – Ulrira

+0

因此,您希望創建一個演員陣列(您希望用作搜索條件後端電影數據庫),然後用數組(包含以這些演員爲特色的電影)獲得響應,然後將其顯示在視圖中(作爲搜索結果)? –

回答

0

所以你要在Best way to parse a query string with AngularJS without using html5mode討論解析您的查詢字符串。

然後你可以重新填充你的$ scope.actors數組和數據來自該解析。

+0

或多或少,請參閱plunkr(已更新) – Ulrira

+0

因此,您想將該查詢字符串讀作(簡化)actors [0] = 1&actors [1] = 2等。 –

+0

是的,但ui-select不會加載選定的項目,因爲dengModel鍵是「演員」,而不是「actors []」,但在提交表單時恰好相反,「actors []」必須按順序發送正確生成網址。 – Ulrira