1. 程式人生 > >關於angular路由傳值(一個或多個)問題

關於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

};