AngularJS:使用非同步資料初始化服務
初始依賴注入在處理非同步資料來源時可能會帶來挑戰。為了解決這個問題,AngularJS 提供了幾種將非同步操作整合到服務中的方法。
1.使用$routeProvider.when('/path',{resolve:{...}
此方法在服務中公開一個承諾,使承諾方法更清晰。路由配置中的解析屬性確保在實例化控制器之前解決依賴關係。 $http攔截器
// Service app.service('MyService', function($http) { var myData = null; return { promise: $http.get('data.json'), ... } ); // Route Config app.config(function($routeProvider){ $routeProvider .when('/', { ... resolve: { MyServiceData: ['MyService', function(MyService) { return MyService.promise; }] } }) }); // Controller app.controller('MainCtrl', function($scope, MyService) { $scope.data = MyService.doStuff(); // ... });
HTTP 攔截器允許您掛鉤HTTP 請求/回應過程並在每個請求之前或之後執行非同步操作,一旦回應可用,您就可以使用它來初始化您的服務。可以是用於表示非同步操作並在它們可用時解析依賴項。有效地初始化服務,確保在控制器實例化之前正確解決依賴關係。
以上是如何使用非同步資料初始化 AngularJS 服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!