所以我有一個scope.data與我的對象數組。該數組的數據在表中顯示,並且是有序的x屬性。在表中的顯示完美,但scope.data對象的自我沒有排序,以反映表顯示的是什麼......有什麼辦法讓該對象也排序爲排序選項?angularJS orderBy未反映在原始範圍
回答
代替將過濾器在你的模板scope.data的,你可以在你的控制器應用過濾器來代替:
而不是:
控制器:
$scope.data = [data array];
模板:
{{ data | orderBy:x }}
更改爲:
控制器:
// Inject $filter into controller
$scope.data = $filter('orderBy')('x');
模板:
數據綁定:
如果您data
陣列傳遞,可以通過處理更新設置監視功能來檢查原始數組更改,然後自動應用到當前的$ scope.data屬性。
只是FYI,你也可以注入orderBy過濾器本身,如果你想對實際的依賴更具體:'函數MyCtrl($ scope,orderByFilter){$ scope.sortedData = orderByFilter($ scope.data,'x' ); ' – 2013-02-21 01:07:08
函數調用$ filter沒有爲我工作。我使用了'$ scope.data = $ filter('orderBy')($ scope.data,'x');' – Steve 2013-04-22 06:26:13
如果我的數組有孩子呢?我如何訂購父母和孩子? – David 2015-09-24 22:35:04
OrderBy不對作用域的變量排序,而是對它的顯示方式進行排序。如果您希望在$範圍內更改,您將需要使用JavaScript對數組進行排序。
- 1. AngularJS範圍變量(數組)更改不反映在ng-repeat
- 2. 在AngularJs範圍
- 3. 範圍變化不會反映
- 4. 反映方法範圍變量的Java
- 5. 設置wbkDest.worksheets(「xxxxxxx」)以反映範圍
- 6. AngularJs:訪問父範圍,我得到範圍未定義
- 7. 範圍angularjs
- 8. AngularJS範圍
- 9. $範圍和Angularjs
- 10. 從一個範圍中刪除數據,它被反映在另一範圍
- 11. 同步範圍在angularjs
- 12. 變化範圍在AngularJS
- 13. AngularJS範圍模式和範圍方法
- 14. AngularJS範圍和Deferreds
- 15. 範圍變量AngularJS
- 16. AngularJS $適用範圍
- 17. AngularJS HTTP GET範圍
- 18. AngularJS - 理解範圍
- 19. angularjs fullcalendar eventclick範圍
- 20. Angularjs中的範圍
- 21. AngularJS變量範圍
- 22. AngularJS $範圍,功能
- 23. 與angularJS $範圍。$父
- 24. AngularJs和ngResource範圍
- 25. AngularJS自定義指令 - 將隔離範圍映射到新的子範圍
- 26. $範圍未定義
- 27. 角度指令範圍沒有反映控制器範圍的變化
- 28. 什麼$範圍:範圍意味着Angularjs的angularjs
- 29. 角度範圍變量更新沒有反映在UI
- 30. AngularJS orderBy問題
我已經回答了爲什麼它不起作用,但是,如果您包含一些代碼或更多細節,我可能會特別告訴您如何對該數組進行排序。 – 2013-02-21 00:14:07