我的远程服务器上有一个webmethod,返回一个JSon对象。 所述json对象包含模块正常工作所需的字符串。
那么,有没有办法将某些东西传递给角度模块? 一个想法可能是在模块初始化内执行http请求:
$scope.init = function(){
$http.get ()
...
then(){
$scope.mydata = result;
}
};
但那将是异步的......
答案 0 :(得分:1)
如果您担心填写$ scope.mydata变量的HTTP请求的异步性质,那么您需要将其包含在路径的RESOLVE中。
我在当前项目中使用UI-ROUTER:
(function() {
'use strict';
angular
.module('capps.core')
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home.capps', {
url: '/',
template: '<ui-view/>',
data: {
requireLogin: true
},
resolve:{
resolveFunction: resolveFunction
}
});
}
]);
resolveFunction['$inject'] = ['$http'];
function resolveFunction($http) {
return $http.get(API_URL)
.then(function(res) {
console.log(res);
});
}
})();
然后在您的控制器中,您可以通过“解决方案”&#39;作为依赖...然后使用它来分配给$ scope.myData。
...
angular.controller('myController', myController);
myController.$inject = ['resolveFunction', '$scope'];
function myController(resolveFunction, $scope) {
$scope.mydata = resolveFunction.data;
console.log(mydata);
};