如何访问 [object object] AngularJS 的数据

How to access data of [object object] AngularJS

我是 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);
        }
});

控制台输出是- [object object]

如何从这个 [object object] 访问 name 键。

console.log($StateParams.viewD.name); // 不工作

JSON.parse, JSON.stringify 不工作。

如下更改您的配置方法,

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)

您必须将状态配置从

更改为 URL
url: '/register/{viewD}',

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

版本0.2.13

增加了JSON参数类型