我遇到了这样的问题,我一半的控制器依赖被解决了,在注入服务后,我最终得到了7-8个参数。
解决:
resolve{
first_data:function(){},
second_data: function(){},
third_data: function(){}
}控制器:
function homeCtrl(first_data, second_data, third_data, ModalService, $state, $timeout, homeService, dataService){
})有没有办法把所有的解析都放到一个参数中?
发布于 2016-04-05 20:59:44
$q怎么样?
let promises = [promiseAlpha(), promiseBeta(), promiseGamma()];
$q.all(promises).then(values => {
console.log(values[0]); // value alpha
console.log(values[1]); // value beta
console.log(values[2]); // value gamma
complete();
});或者甚至是:
let promises = {
alpha: promiseAlpha(),
beta: promiseBeta(),
gamma: promiseGamma()
}
$q.all(promises).then(values => {
console.log(values.alpha); // value alpha
console.log(values.beta); // value beta
console.log(values.gamma); // value gamma
complete();
});致词:http://www.martin-brennan.com/using-q-all-to-resolve-multiple-promises/
问题是?是first_data http调用吗?如果是这样,请使用上面的解决方案。如果first_data是一些包含数据的容器,只需将其移动到service,并在您想要调用此服务的任何地方调用该服务,例如:
service.js
(function () {
'use strict';
angular
.module('app')
.service('DashboardService', DashboardService);
DashboardService.$inject = ['$http'];
function DashboardService($http) {
var _this = this;
_this.first_data = function () {
return [{id: 1, content: "some data"}];
};
return _this;
}
}());controller.js
(function () {
'use strict';
angular
.module('app')
.controller('DashboardCtrl', DashboardCtrl);
DashboardCtrl.$inject = ['$scope', 'DashboardService'];
function DashboardCtrl($scope, DashboardService) {
var _this = this;
_this.first_data = DashboardService.first_data;
}
}());https://stackoverflow.com/questions/36422766
复制相似问题