2016-07-28 7 views
1

방금 ​​각도를 사용하기 시작했으며 현재 1.4.2를 사용하고 있습니다. URL의 세 가지 옵션 인 작성, 업데이트 및보기 /:type을 갖는 방법을 알고 싶습니다. 각도가있는 JS 경로 매개 변수 (제한된 옵션 포함)

그들은 모두 같은 컨트롤러를 사용, 그래서 나는 다른 옵션이 옆에 전달되는 내가 원하지 않는 등

.when('/create ... , .when('/update ... , .when('/view ... . 

별도의 whens을 가지고 싶지 않아. 도움을 얻을 수 있다면 좋을 것입니다! 감사합니다 :)

+0

3 개 별도의 규칙을 작성 컨트롤러 기능을 참조하십시오. – dfsq

+0

당신은 세 가지'.when' 경우를 의미합니까? 그러나 그것은 내가 같은 컨트롤러를 모두 사용하기 때문에 피하고 싶었습니다. 해당 컨트롤러 내에서 플래그가 그에 따라 설정됩니다. –

+1

동일한 컨트롤러 또는 다른 컨트롤러를 사용할 수 있습니다. 너의 문제를 잘 모르겠다. – dfsq

답변

2

컨트롤러의 $ routeParams 서비스에서 매개 변수를 가져 와서 원하는 논리를 수행 할 수 있습니다. https://docs.angularjs.org/api/ngRoute/service/ $ routeParams

경로 설정

$routeProvider 
    .when("/yourroute/:type", { 
     template: "default" 
     templateUrl: "template.html", 
     controller: "Controller" 
    }); 

function Controller($routeParams) { 
    switch($routeParams.type) { 
     case "create": 
      ... 
     case "update": 
      ... 
     case "view": 
      ... 
     default: 
      ... 
    } 
} 
+0

고마워! :) 나는 이것이 내가 찾고 있었던 것이라고 생각한다. :) –

0

하지만 3 differerents URL을 원하십니까? 여러 번 선언하지 않으려는 자식 문을 사용하려면 ui-router 및 stateHelperProvider를 사용해야합니다.

stateHelperProvider.state({ 
      name: 'root', 
      template: '<ui-view/>', 
      abstract: true, 
      children: [ 
        { 
         name: 'create', 
         url: '/create', 
         templateUrl: 'mypath.html', 
         controller: 'myCtrl', 
         data: { 
          type: 'create' 
         } 
        }, 
       { 
        name: 'view', 
        url: '/view', 
        templateUrl: 'mypath.html', 
        controller: 'myCtrl', 
        data: { 
         type: 'view' 
        } 
       }, 
       { 
        name: 'update', 
        url: '/update', 
        templateUrl: 'mypath.html', 
        controller: 'myCtrl', 
        data: { 
         type: 'update' 
       } 
       }, 
      ] 
      }); 

과 같이 할 수 있어야합니다. 하지만 당신이 3을 선언하지 않았다는 것을 이해하지 못합니다. "

+0

예, 전달하는 유형에 따라 플래그가 지정됩니다. 예를 들어 유형이보기 인 경우 필드를 비활성화합니다. –

+0

감사! :) 그러나 이것은 아이가 다른 HTML 파일과 컨트롤러를 가지고있을 때 유용합니다. –

+0

나는 이렇게 생각한다 @ doge1ord 해결책은 아주 좋다 :) – DMCISSOKHO