AngularJS-View从StateProvider获取未定义的数据
AngularJS - View gets undefined data from StateProvider
我正试图将一个对象从AngularJS
应用程序中的stateProvider
发送到我的view
。state
确实解析并发送对象,但是在视图中对象突然变成undefined
。这怎么可能?
StateProvider
...
.state('view', {
url: '/view/:view',
templateUrl: urlBase + 'views/view.html',
controller: 'viewController',
resolve: {
view: function ($stateParams, sharedProperties) {
sharedProperties.getConfig(sharedProperties)
.then(function(response){
var config = response.data;
console.log('config :', config);
for (var i = 0; i < config.views.length; i++) {
if (config.views[i].route === $stateParams.view) {
console.log('jackpot : ', config.views[i]);
return config.views[i];
}
}
return undefined;
})
.catch(function(error){
console.log('Error : ', error);
return undefined;
});
}
}
})
...
视图
angular.module('app')
.controller('viewController', ['$scope', '$state', '$interval', '$window', 'view', 'socketService', 'userService',
function ($scope, $state, $interval, $window, view, socketService, userService) {
console.log('view : ', view);
var user = userService.get();
// If there is no view, return to login page
if (view === undefined) {
$state.go('welcome');
}
/*
* Sets the models to be used in the view
*/
$scope.values = view.values;
...
shareProperties服务
app.factory('sharedProperties', function ($http) {
var service = {};
service.getConfig = function () {
return $http.get('config.json');
};
return service;
});
控制台日志
config : Object {socketAddress: "ws://localhost:8081/Common", IISProjectName: "simplanner", views: Array[1]} core.js:67
jackpot : Object {route: "Arbejds Tider", viewFunctions: Object, storedProcedure: Object, values: Array[5]} view.controller.js:3
view : undefined
angular.min.js:107 TypeError: Cannot read property 'values' of undefined
at new <anonymous> (http://localhost:8080/simplanner/scripts/controllers/view.controller.js:15:29)
at e (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:39:193)
at Object.instantiate (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:39:310)
at http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:80:313
at http://localhost:8080/simplanner/lib/Angular-1.4.7/angular-ui-router.min.js:7:28006
at aa (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:73:90)
at K (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:62:39)
at g (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:54:410)
at http://localhost:8080/simplanner/lib/Angular-1.4.7/angular.min.js:53:480
at k (http://localhost:8080/simplanner/lib/Angular-1.4.7/angular-ui-router.min.js:7:27219) <div ui-view="" class="ng-scope">
(anonymous function) @ angular.min.js:107
(anonymous function) @ angular.min.js:80
aa @ angular.min.js:73
K @ angular.min.js:62
g @ angular.min.js:54
(anonymous function) @ angular.min.js:53
k @ angular-ui-router.min.js:7
(anonymous function) @ angular-ui-router.min.js:7
n.$broadcast @ angular.min.js:136
y.transition.M.then.y.transition.y.transition @ angular-ui-router.min.js:7
(anonymous function) @ angular.min.js:119
n.$eval @ angular.min.js:133
n.$digest @ angular.min.js:130
n.$apply @ angular.min.js:133
h @ angular.min.js:87
K @ angular.min.js:91
z.onload @ angular.min.js:93
工厂
sharedProperties
有一个方法/函数getConfig()
-我们想要的结果。所以我们必须return
它:
...
resolve: {
view: function ($stateParams, sharedProperties) {
// instead of just a call
// sharedProperties.getConfig(sharedProperties)
// we need to return that result
return sharedProperties.getConfig(sharedProperties)
.then(function(response){
...
相关文章:
- 一台特定计算机的Ajax请求数据未定义/失败
- Chart.js2.X中的条形值-数据集元数据未定义
- Jquery从JSON获取数据(未定义)
- jsFunction'当事件启动器在表单内时,s数据未定义
- 在 Node.js 中生成一个子进程,数据未定义
- jQuery几乎赢得了我 - UI自动完成“数据未定义”
- 在脚本中从电子表格中获取数据:“未定义数据表”
- jQuery自动完成数据未定义错误
- mvc函数返回的AJAX调用数据未定义
- Angular UI路由器解析数据未定义
- Qtip数据未定义错误
- Ajax表单提交+引导验证程序正在工作.现在"数据未定义”;错误
- bodyParser(urlencodedParser)数据未定义
- ReceiveMessage事件显示数据未定义
- ie9上的Ajax调用(成功数据-未定义)
- 插入的数据未定义,然后在数据库中显示为一个数字
- Ajax post数据未定义
- 美元.getJSON数据未定义
- javascript数据未定义
- JS HighCharts.JS代码中出现Pie数据未定义错误