【发布时间】:2016-06-11 23:29:24
【问题描述】:
我正在使用 Angular Ui 路由器,当返回工厂解决在控制器中未定义时。这里有什么问题?为什么返回工厂调用时未定义?
返回字符串时工作: 在解析函数中返回一个简单的字符串时,在控制器中获取数据。
工厂调用
app.factory('LogHomService', function(Service1, Service2) {
return {
MyService: function(data) {
Service1.log("user", encodeURIComponent("ad"))
.then(function(response) {
var FullUrl = response.strURL;
var objs = response.products;
Service2.pageLoad(objs)
.then(function(response) {
var homeScreen = response;
data(homeScreen);
});
});
},
};
});
UI 路由器:
.state('home.prod', {
url: '/product',
views: {
'@': {
templateUrl: baseUrl + 'home/product',
controller: 'productController'
}
},
resolve: {
param2: function(LogHomService) {
return LogHomService.MyService();
}
}
})
控制器:
var productController = function ($scope, $rootScope, $state, $stateParams,param2)
{
console.log(param2); // getting undefined
}
CashController.$inject = ['$scope', '$rootScope', '$state','$stateParams','param2');
【问题讨论】:
-
我认为这是因为你没有从你的工厂返回承诺。尝试添加返回,例如:
return Service1.log("user", ...)。
标签: javascript angularjs angularjs-directive angular-ui-router angular-routing