在ng的頁面條轉傳參數的方法,ui-sref,$state
Ui-sref:用於html頁面進行單頁面的跳轉
$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 };
[傳遞多個參數]($state)
其實傳遞參數的本質都是一樣的,對於傳遞多個參數的我我們可以將多個參數組成一個對象,然后將這個對象轉換成字符串,將字符串傳遞過去。
Em:
使用$state.go()傳遞多個參數;
對於傳遞方:
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 };