2014-10-01 5 views
0

내가 ui-router여러 PARAMS UI 라우터

ui-sref은 다음과 같습니다가 사용하여 여러 매개 변수를 전달하는 몇 가지 이상한 문제 데 사용 :

: 나는 요소를 검사하는 경우

ui-sref="app.bins.view({binId:{{gridDisplayItem.id}},allowUpload:'{{gridDisplayItem.user_upload}}'})" 

, 나는 같은 것을 참조

<a ui-sref="app.bins.view({binId:3,allowUpload:'No'})" href="#/app/bins/view/3"> 
    <i class="fa fa-folder-open" style="font-size:18px;color:green"></i> 
</a> 

올바른 값이 전달됩니다.

app.bins.view으로 이동하면 console.log($stateParams.binId);을 표시하면 3이 표시됩니다.

console.log($stateParams.allowUpload);의 경우 undefined이 표시됩니다.

나는 console.log($stateParams); 내가 문서에 따르면 Object {binId: "3"}

을 얻을 경우, 나는이 제대로 일을 오전 : https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-sref

을 내가 잘못 여기서 뭐하는 거지?

+0

'No'를 사용 ... 그렇지 않으면 변수 No ... – beauXjames

+0

을 찾고 있습니다. 여전히 값을 따옴표로 묶어서'undefined'를 얻고 있습니다. 작은 따옴표를 반영하여 내 게시물을 편집했습니다. – Ronnie

+0

ui-route에서 두 매개 변수를 모두 선언 했습니까? – beauXjames

답변

1

은 가장 중요한 이해하는 UI를-라우터 설명서 (https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service)의 정보는 공급자의 구성에 매개 변수를 선언해야합니다 다음

$stateProvider.state('contacts.detail', { 
    url: '/contacts/:contactId', 
    controller: function($stateParams){ 
     $stateParams.contactId //*** Exists! ***// 
    } 
}).state('contacts.detail.subitem', { 
    url: '/item/:itemId', 
    controller: function($stateParams){ 
     $stateParams.contactId //*** Watch Out! DOESN'T EXIST!! ***// 
     $stateParams.itemId //*** Exists! ***// 
    } 
}) 

입니다.

'allowUpload'매개 변수의 목적이 내가 생각하는 바라면 href에서 ng-click 이벤트를 사용하여 컨트롤러에서 호출 한 다음 $ 상태를 사용하는 함수를 사용할 수 없습니다 .go() 메서드를 사용하여 뷰 변경을 관리합니다. 컨트롤러에 변수를 전달하기 만하면됩니다.

+0

'controller : 'ViewBinController'와 같은 설정에서 컨트롤러를 정의하고 있습니다. 이것은 ng-click을 사용하여 $ state.go와 결합하여 사용하면 좋을 것이라고 생각합니다. – Ronnie

+0

멋진 답변 ... 답변을 수락하십시오! – beauXjames

+0

나는 아직도 그것을 작동 시키려고 노력하고있다, 걱정하지 마라. 나는 걸어 두지 않을 것이다. – Ronnie