我有以下成功功能:
if(data.status=="success") {
var sessionid = data.member.member_id;
var dd = data.member;
$state.go('dashboardsnewsucc.dashboardefault', {userid: sessionid});
}
data.member包含JSON数据我不想只有data.member.member_id;但是我希望data.member中存在的所有对象都必须将数据发送到dashboardsnewsucc.dashboardefault。
这两个州是:
.state('dashboardsnewsucc', {
abstract: true,
url: "/dashboardsnewsucc/:userid",
templateUrl: "views/common/content-empty.html",
})
.state('dashboardsnewsucc.dashboardefault', {
url: "/dashboardefault",
templateUrl: "views/userdashboard.html",
data: { pageTitle: 'Hive Dashboard',specialClass: 'loginscreen-gray-bg' },
})
在前端,我将data.member.member_id取为{{$state.params.userid}}.
答案 0 :(得分:0)
JS:
$stateProvider
.state('dashboardsnewsucc', {
templateUrl: 'dashboardsnewsucc',
controller: 'dashboardsnewsuccCtrl'
})
.state('view', {
templateUrl: 'dashboardsnewsucc',
params: {'param': null, 'paramOther': null}, // Set By Default Values
controller: 'dashboardsnewsuccCtrl'
})
发送params:
$state.go('view', { 'param': 123, 'paramOther': 'This is a test' })
然后在你的控制器中访问:
app.controller('dashboardsnewsuccCtrl', function($scope, $stateParams) {
var index = $stateParams.param;
var anotherKey = $stateParams.paramOther;
});
答案 1 :(得分:0)
为了做你想要实现的目标,你可以简单地传递整个对象而不是只传递一个对象属性。例如,您首先检索member_id
,然后将该值仅传递给下一个状态。
但不是这样做,你可以这样写:
if(data.status=="success") {
var sessionid = data.member.member_id;
var dd = data.member;
$state.go('dashboardsnewsucc.dashboardefault',
{
member: dd
}
);
}
这会将整个成员对象传递给下一个状态,您可以在下一个状态中访问整个成员对象,如:
$state.params.member
这将为您提供完整的成员对象,其中包含在之前状态中返回的所有属性。
答案 2 :(得分:0)
将其作为字符串传递
In [54]: %timeit pd.DataFrame(df1['x,y'].values.tolist(), index=df1['id']).stack().reset_index(level=1, drop=True).reset_index(name='x,y')
1000 loops, best of 3: 1.49 ms per loop
In [55]: %timeit pd.DataFrame({'id': np.repeat(df1['id'].values, df1['x,y'].str.len()), 'x,y': df1['x,y'].values.sum()})
1000 loops, best of 3: 562 µs per loop
#piRSquared solution
In [56]: %timeit pd.DataFrame({'id': df1['id'].repeat(df1['x,y'].str.len()), 'x,y': df1['x,y'].sum() })
1000 loops, best of 3: 712 µs per loop
在if(data.status=="success") {
var sessionDetails = JSON.stringify(data.member);
var dd = data.member;
$state.go('dashboardsnewsucc.dashboardefault', {userid: sessionDetails});
}
dashboardsnewsucc
虽然我觉得您的相关详细信息更适合存储在Cookie中。
答案 3 :(得分:0)
您需要先将数据字符串化。
if(data.status=="success") {
var sessionid = data.member.member_id;
var dd = data.member;
$state.go('dashboardsnewsucc.dashboardefault', {userid: JSON.stringify(sessionid)});
}
在控制器内部,yoy获取数据,你需要再次解析JSON
.controller('Ctrl', function($scope, $stateParams) {
var userid = JSON.parse($stateParams.userid)
})
如果您不想在网址中显示数据:
state('dashboardsnewsucc', {
abstract: true,
url: "/dashboardsnewsucc",
params: {
userid:null
}
templateUrl: "views/common/content-empty.html",
})
.state('dashboardsnewsucc.dashboardefault', {
url: "/dashboardefault",
templateUrl: "views/userdashboard.html",
data: { pageTitle: 'Hive Dashboard',specialClass: 'loginscreen-gray-bg' },
})
答案 4 :(得分:0)
在路线:
中.state('some-state', {
url: 'someUrl',
parent: 'home',
params: {
myObj: null
}});
假设你想从 S1 收到一个陈述 S2 的对象,那么,在 S1 :
var params = {
myObj: "HELLO FROM THE OTHER SIDE"
};
$state.go("confirmation-auth-email", params);
在 S2 上,你会收到这样的信息:
function someControllerFunction($scope,$state) {console.log(JSON.parse($state.params));}