我是AngularJS的新手。 我正在将JsonObject发送到另一个州。
例如:
viewScope.edit=function(d) {
var viewData = {
'name' : d.name,
};
$state.go('edit', {'viewD': viewData}, {reload: true});
};
我的国家是 -
viewApp.config(function($stateProvider){
$stateProvider
.state('edit', {
name: '#/edit',
url: '/register/{viewD}',
templateUrl: function(){
return path+'/register.jsp';
},
controller:'registerCtrl',
resolve : {
loadPlugin: function($ocLazyLoad) {
return $ocLazyLoad.load([{
name : 'registerApp',
files: [path+'/resources/js/register.js'],
}])
}
}
})
});
在寄存器控制器获取数据 -
regApp.controller('registerCtrl',function($stateParams){
if($stateParams != undefined){
console.log($stateParams.viewD);
}
});
在控制台输出上是 - [对象对象]
如何从此[对象]中访问名称键。
的console.log($ StateParams.viewD.name); //不工作
JSON.parse,JSON.stringify无效。
答案 0 :(得分:1)
按以下方式更改配置方法,
viewApp.config(function($stateProvider){
$stateProvider
.state('edit', {
name: '#/edit',
url: '/register',
params: {
viewD: null
}
templateUrl: function(){
return path+'/register.jsp';
},
controller:'registerCtrl',
resolve : {
loadPlugin: function($ocLazyLoad) {
return $ocLazyLoad.load([{
name : 'registerApp',
files: [path+'/resources/js/register.js'],
}])
}
}
})
});
然后你可以在控制器中从$state
这样访问你的对象,
$state.params.viewD
或来自$stateParams
的此$stateParams.viewD
现在尝试console.log($state.params.viewD.name)
答案 1 :(得分:1)