在页面加载之前运行API Angularjs
我在main.js中使用了一个API,API的输出将在使用rootscope的多个页面和控制器上使用。因此,我需要确保API在加载任何页面之前运行。目前,页面首先被加载,然后API运行。因此,我无法将API输出绑定到html div在页面加载之前运行API Angularjs,angularjs,Angularjs,我在main.js中使用了一个API,API的输出将在使用rootscope的多个页面和控制器上使用。因此,我需要确保API在加载任何页面之前运行。目前,页面首先被加载,然后API运行。因此,我无法将API输出绑定到html div 请帮忙 您可以使用angular服务调用api并注入控制器,也可以在配置中使用provider并将数据分配给$rootScope执行类似操作 app.run(function($http, $rootScope){ $http.get('CALL_TO_YOUR
请帮忙 您可以使用angular服务调用api并注入控制器,也可以在配置中使用provider并将数据分配给
$rootScope
执行类似操作
app.run(function($http, $rootScope){
$http.get('CALL_TO_YOUR_API')
.success(function(data, status, headers, config) {
$rootScope.config = data;
$rootScope.$broadcast('API-loaded');
})
.error(function(data, status, headers, config) {
// log error
alert('error');
});
})
app.controller('MainControl', function($scope, $rootScope) {
$scope.$on('API-loaded', function(){
//DO your stuff
});
});
您需要在config.js中使用resolve
.state('sampleState', {
url: "/sample",
templateUrl: "sample.html",
controller: 'SampleCtrl',
resolve: {
companyDetails : function($http) {
return $http.get('api/v1/get_sample')
.then(function (data) {
return data
}, function (data) {
});
}
}
})
您需要在路由中使用resolve。但是,由于您没有提供任何代码或任何东西,因此没有人能够帮助您。请用正确的代码更新您的问题。我不确定我是否理解。。。。如果将API的结果分配给
$rootScope
对象,则使用此对象的所有页面/控制器都会自动更新。也许,您可以添加一些示例代码、您得到的内容以及希望看到的内容。