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: