我需要在应用初始化后立即获取产品数据,使用我在页面的不同部分使用的相同控制器来创建不同的实例。
HTML:
<header class="clearfix" ng-controller="EntityDetailController"
ng-init="entity_id={{id}}; get_details('products');">
...
</header>
JS:
$scope.result = Products.get({
type : type,
id : $scope.entity_id
});
$scope.result.$promise.then(function(result) {
});
我需要在某些服务中存储数据,以便稍后我可以与所有控制器共享数据,并且我还需要在收到数据后通知所有控制器,以便他们可以从工厂获取数据。
答案 0 :(得分:1)
实现目标有两种方法:
run
方法中包含服务部分。因此,当服务调用解析时,数据将在所有控制器上可用。与ng-init
angular.module('yourApp')
.run(['ProductsService', '$http', function (ProductsService, $http) {
// make the api request here
}]);
resolve
中使用ng-router
属性。在app控制器加载之前,发出服务请求。因此,一旦服务结算,控制器将加载。 默认情况下,一旦注入服务,服务数据将可用于所有控制器。无需广播。