我有一个简单的工厂设置来接收一个对象列表,但出于某种原因我一直开始
TypeError:无法读取未定义的属性“split” at Object.angular.module.factory.Route.setUrlParams
进一步检查时,似乎未定义Route.prototype中的url。我有这个工厂在应用程序的其他地方工作,只是不在这一页上,只在刷新时发生。
获取列表的实际代码:
$scope.facilityList = new FacilityList.query();
FacilityList工厂:
.factory('FacilityService', function($http, $resource, ResourceDirectoryService){
return $resource(ResourceDirectoryService.getFacilityList(), {}, {
'query': {method: 'GET', isArray: false}
});
});
resourceDirectory返回Java后端代码中预定的URL。同样,这在应用程序的其他位置有效,除了一页和刷新中断。
以下是app.js config中的相关代码:
.config(['$routeProvider', '$httpProvider', '$locationProvider',
function ($routeProvider, $httpProvider, $locationProvider) {
$routeProvider
.when('/user/facilityList', {
templateUrl: 'views/userFacilityList.tpl.html',
controller: 'UserFacilityListCtrl',
role: 'staffView'
})
尝试使用resolve,同样的错误,现在在app.js:
.when('/user/facilityList', {
templateUrl: 'views/userFacilityList.tpl.html',
controller: 'UserFacilityListCtrl',
role: 'staffView',
resolve: {
resolvedFacilities: ['$q', 'FacilityService', function($q, FacilityService){
var deferred = $q.defer();
FacilityService.query(
function (resp){
deferred.resolve(resp);
});
return deferred.promise;
}]
}