Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离子框架,如何在状态下传递多个param对象?_Javascript_Angularjs_Angular Ui Router_Ionic Framework - Fatal编程技术网

Javascript 离子框架,如何在状态下传递多个param对象?

Javascript 离子框架,如何在状态下传递多个param对象?,javascript,angularjs,angular-ui-router,ionic-framework,Javascript,Angularjs,Angular Ui Router,Ionic Framework,我想传递处于状态的两个对象。按如下方法进行操作: $state.go('app.home', { playSavedPlaylist:true, playlistData: dataToPass }); State app.home如下所示: .state('app.home', { url: '/home:playSavedPlaylist:playlistData', views: {

我想传递处于状态的两个对象。按如下方法进行操作:

$state.go('app.home', {
            playSavedPlaylist:true,
            playlistData: dataToPass
        });
State app.home如下所示:

.state('app.home', {
      url: '/home:playSavedPlaylist:playlistData',
      views: {
        'menuContent' :{
          templateUrl: 'templates/home.html',
          controller: 'HomeCtrl'
        }
      }
    })
Object {playSavedPlaylist: "true[object Object]", playlistData: ""}
但如果我试图通过以下方式获取参数:

console.log($stateParams);
我总是得到以下信息:

.state('app.home', {
      url: '/home:playSavedPlaylist:playlistData',
      views: {
        'menuContent' :{
          templateUrl: 'templates/home.html',
          controller: 'HomeCtrl'
        }
      }
    })
Object {playSavedPlaylist: "true[object Object]", playlistData: ""}
但应该是:

  Object {playSavedPlaylist: "true", playlistData: [object Object]}
我怎样才能用正确的方法做呢


非常感谢您的建议。

您可以添加“/”来分隔参数。此外,url参数只能是整数和字符串,因此对象必须转换为json,或者不包含在url中

.state('app.home', {
    url: '/home/:playSavedPlaylist/:playlistData',
    views: {
        'menuContent' :{
            templateUrl: 'templates/home.html',
            controller: 'HomeCtrl'
        }
    }
});

$state.go('app.home', {
    playSavedPlaylist:true,
    playlistData: angular.toJson(dataToPass)
}
//, { location: false, inherit: false}    <-- will exclude parameters from url
);
.state('app.home'{
url:'/home/:playSavedPlaylist/:playlista',
观点:{
“菜单内容”:{
templateUrl:'templates/home.html',
控制器:“HomeCtrl”
}
}
});
$state.go('app.home'{
playSavedPlaylist:true,
播放数据:angular.toJson(dataToPass)
}

//,{location:false,inherit:false}什么是
dataToPass
?对象


您不能直接在URL中传递对象,因此您应该使用服务来获取所需的数据,您只能传递整数(例如:id、max、min)和不包含URL禁止字符的字符串(您可以使用URI编码).

这是我尝试的第一件事,但它会导致黑屏,没有任何错误。也许这也会引起您的兴趣et: