是否良好的做法是使用angular.element("ng-controller="someCtrl"]").scope()
而不是使用工廠來處理使用依賴注入控制器之間的數據流。這裏的問題是,我想打電話給另一個控制器的功能,所以有兩種方法要麼我把它放在一個工廠,然後重新使用控制器之間也可以使用上面的語法來直接調用該函數。是好的做法是使用angular.element(「[NG-控制器=」 someCtrl「]」)。範圍()
0
A
回答
2
如果需要調用其他控制器的功能,它應該是一個服務/工廠。這樣,您將在控制器之間共享代碼,並且您將通過良好實踐進行編碼。
正如他們在angularjs docs說
角度服務是使用依賴注入(DI)連接在一起 替代對象。您可以使用服務來整理應用程序中的代碼並分享其中的代碼。
然後,你只需要創建一個服務或工廠
//The service
angular.module('myApp')
.service('serviceName', function ($http, $scope, socket) {
//This functions will be available in your controller
return {
list: function() {
$http.get(listUrl).success(function (lista) {
$scope.centerList = lista;
socket.syncUpdates('center', $scope.centerList);
});
}
};
});
//The controller
angular.module('myApp').controller('myCtrl', function ($scope, centerService) {
$scope.listCenters = function() {
centerService.list();
};
});
只是爲了澄清,並添加關於服務和工廠的一些綜合性的想法:
2
這是從來沒有很好的做法,從控制器訪問DOM。因此,如果將該方法包裝在工廠/服務中是一種選擇,那麼我會說這是要走的路。
相關問題
- 1. 訪問控制器$範圍不是內部的NG-重複的控制器
- 2. 設置另一個控制器範圍的變量,而無需使用angular.element(Angularjs)
- 3. 使用控制器輔助方法時範圍不好值
- 4. 在控制器中使用linq查詢是不是很好的做法?
- 5. 控制器間共享範圍變量的最佳做法是什麼?
- 6. AngularJS - NG-包括NG-控制器和範圍不結合
- 7. 更新控制器範圍NG-包括/ NG-重複
- 8. 控制器中的角度ng-click範圍調用函數
- 9. Codeigniter:在覈心控制器中使用auth是一個很好的做法嗎?
- 10. 針對所有資源使用單個控制器是不好的做法嗎?
- 11. 控制器範圍內跨範圍
- 12. 有沒有辦法控制範圍選擇器的範圍?
- 13. 定製angularjs指令與範圍和NG控制器
- 14. 是不是很好的做法,或者至少不是不好的做法,不要使用限制
- 15. 從外部控制器調用ng-view控制器方法?
- 16. 控制器方法站點範圍
- 17. 呼叫控制器$範圍方法
- 18. AngularJS設置NG-控制器範圍內的變量
- 19. ui-select2 ng-model的範圍是什麼
- 20. 使用* str ++是不好的做法嗎?
- 21. 使用collections.OrderedDict是不好的做法嗎?
- 22. 從控制器進行AJAX調用是否是「最佳做法」?
- 23. 在應用程序控制器中設置變量是很好的做法?
- 24. 重複使用的NG-控制器單
- 25. 這指的是Angularjs中另一個控制器的$範圍
- 26. 如何使用ExtJS 4中控制器的控制方法更改範圍?
- 27. NG-包括使用$範圍
- 28. 使用控制器作爲語法而不是$ scope的優點是什麼?
- 29. 好的做法是爲自動完成過濾器創建控制器嗎?
- 30. 抽象使用的API是否是一種好的做法?