[英]AngularJS ui-router not resolve service call
我正在尝试在我的ui路由器状态提供程序中使用解析功能。 我将其配置如下:
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
...
$stateProvider.state('expositions', {
url: '/Expositions',
views: {
"container": {
templateUrl: '/views/expositions.html',
resolve: {
expositions: function ($http) {
return $http.get('/api/site/expositions').then(
function (response) {
console.log("DATA", response.data);
return response.data;
},
function (error) {
console.log("ERROR", error);
})
}
}
}
}
})
...
}
在这种情况下,当我单击博览会链接时,不会调用解决方法,并且不会执行导航:什么也没有发生。
我还尝试使用工厂(资源服务)来配置它,如下所示:
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
...
$stateProvider.state('expositions', {
url: '/Expositions',
views: {
"container": {
templateUrl: '/views/expositions.html',
resolve: {
expositions: function (Resources) {
console.log("DATA", Resources);
return Resources.expositions();
}
}
}
}
})
...
}
资源服务在单独的文件中定义,如下所示:
resourcesService.js
(function () {
'use strict';
angular
.module('site')
.factory('Resources', ['$resource',
function ($resource) {
return $resource('/api/site/:action/:id', {}, {
...
expositions: {
method: 'GET',
params: { action: "expositions" },
isArray: true
//transformResponse: function (data) {
// return angular.fromJson(data).list
//}
},
...
});
}
]);
})();
同样在这种情况下,什么也不会发生,并且不会调用resolve函数。
我想念什么?
提前谢谢大家!
尝试给这个
expositions: ['$http',function ($http) {
像这样
resolve: {
expositions: ['$http',function ($http) {
return $http.get('/api/site/expositions').then(
function (response) {
console.log("DATA", response.data);
return response.data;
}],
function (error) {
console.log("ERROR", error);
})
}
让我知道这是否有效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.