简体   繁体   English

如何访问[对象对象] AngularJS的数据

[英]How to access data of [object object] AngularJS

I am new to AngularJS. 我是AngularJS的新手。 I am sending a JsonObject to another state. 我正在将JsonObject发送到另一个状态。

Ex: 例如:

viewScope.edit=function(d) {

   var viewData = {
      'name' : d.name,
   };

   $state.go('edit', {'viewD': viewData}, {reload: true});
};

My State is- 我的状态是-

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'],
                     }])
                }
            }
        })
});

In register Controller getting data- 在寄存器控制器中获取数据

regApp.controller('registerCtrl',function($stateParams){                 
        if($stateParams != undefined){
            console.log($stateParams.viewD);
        }
});

On console output is- [object object] 在控制台上的输出是-[object object]

How can i access the name key from this [object object]. 我如何从此[对象对象]访问名称键。

console.log($StateParams.viewD.name); console.log($ StateParams.viewD.name); // Not Working //不起作用

JSON.parse, JSON.stringify not working. JSON.parse,JSON.stringify无法正常工作。

Change your config method as following, 如下更改您的配置方法,

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'],
                 }])
            }
        }
    })
});

And then you can access your object from $state like this in the controller, $state.params.viewD or from $stateParams like this $stateParams.viewD 然后,您可以从$state这样在控制器$state.params.viewD访问对象,或者从$stateParams这样访问$stateParams.viewD

Now try console.log($state.params.viewD.name) 现在尝试console.log($state.params.viewD.name)

You have to change your state config URL from 您必须从以下位置更改状态配置URL

url: '/register/{viewD}',

to

url: '/register/{viewD:json}',

The JSON parameter type has been added in version 0.2.13 JSON参数类型已在0.2.13版中添加

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM