關於angular路由傳值(一個或多個)問題
在ng的頁面條轉傳引數的方法,ui-sref,$state
1、Ui-sref:用於html頁面進行單頁面的跳轉;
2、$state:用於js程式碼中跳轉。
[傳遞單個引數]
對於傳遞方:
傳遞方:ui-sref=”home.ideas.edit({id:detailIdeas[0].idea.id})
或者:$state.go(home.ideas.edit,{id: detailIdeas[0].idea.id });
對於接受方:
.state('home.ideas.edit', {
url: '/detailsEdit/:id',
views: {
"part" : {
templateUrl: 'tpls/ideas/edit.html',
controller:"ideas_edit_ctrl"
}
}
})
使用:
在ideas_edit_ctrl控制器中,我們可以直接使用$state.params 來獲取我們傳遞的引數
(要先注入$state)
var idx={
ideaID:$state.params.id
};
其實傳遞引數的本質都是一樣的,對於傳遞多個引數的我我們可以將多個引數組成一個物件,然後將這個物件轉換成字串,將字串傳遞過去。
Em:
使用$state.go()傳遞多個引數;
對於傳遞方:
var User_info={ name:’菱角’, age:15, skill:’angular’ };
$state.go(“home.ideas.allIdeas”,{user_right:JSON.stringify(user_info});
對於接受方:(還是保持不變)
.state('home.ideas.allIdeas', {
url: '/allIdeas/:user_right',
views: {
"part": {
templateUrl: 'tpls/ideas/all_idea_list.html' ,
controller:'ideas_allIdeas_ctrl'
}
}
})
使用:
在ideas_allIdeas_ctrl控制器中
var user_right=JSON.parse($state.params.user_right);
user_right的結構:
user_right={ name:’菱角’, age:15, skill:’angular’}
使用:ui-sref傳遞多個引數:
傳遞方:
<button ui-sref="home.ideas.edit({id:detailIdeas[0].idea.id,name:detailIdeas[0].idea.id.name})">go edit</button>
接受方:
.state('home.ideas.edit', {//編輯創意
url: '/detailsEdit?id&name',
views: {
"part": {
templateUrl: 'tpls/ideas/edit.html',
controller:"ideas_edit_ctrl"
}
}
})
使用:
在ideas_edit_ctrl控制器中,我們可以直接使用$state.params 來獲取我們傳遞的引數
(要先注入$state)
var idx={
ideaID:$state.params.id
ideaName:$state.params.name
};