2016-11-02 6 views
0

이 질문은 아마도 몇 번 물어 봤지만 해결책을 찾지 못했습니다. 게다가 나는이 문제 (및 문구)에 대한 전문가가 아니므로 나와 함께 맨발로가주세요.AngularJS ui 라우터 매개 변수

그래서 Ionic으로 앱을 만들고 있는데 온라인 관리 사이트의 기본 동적 텍스트가 포함되어 있습니다. 나는이 데이터를 jrough라는 앱으로 가져 왔고 이제는 내 앱에 동적 링크 (또는 상태)를 만들고 싶습니다. 것은 일부 물질의 목록을 가지고 있으며 그 물질 각각에는 다른 정보가 들어 있습니다. 그래서 지금 나는이 물질들의 목록을 가지고 있습니다. 특정 물질을 클릭하면이 물질의 모든 정보를 보여주는 다른 상태로 갈 필요가 있습니다. 여기

는 내가 지금까지 가지고 코드 ...

데이터베이스입니다 :

substances: [ 
    { 
    sID: 'int', 
    sTITLE: 'Some title 1', 
    sINFO: 'some info 1', 
    }, 
    { 
    sID: 'int', 
    sTITLE: 'Some title 2', 
    sINFO: 'some info 2', 
    }, 
    ..... 
] 

는 app.js

.state('substances', { 
      url: "/substances", 
      templateUrl: "templates/substances.html", 
      controller: 'SubstancesCtrl' 
     }) 

    .state('substanceDetails', { 
      url: "/substanceDetails", 
      templateUrl: "templates/substanceDetails.html", 
      controller: 'substanceDetailsController' 
     }) 

controllers.js을

.controller('SubstancesCtrl', function ($scope, $stateParams, $rootScope, $http) { 


    $http.get('http://someurladdress.php?type=json') 
     .success(function (data) { 

      $scope.substances = data; 

     }) 
     .error(function (response) { 
      $scope.message = "Error"; 

     }); 

})

substances.html

<ul class="list"> 

     <li ng-repeat="sID in substances" class="item "> 
      <a ui-sref="substanceDetails({sID:substances.sID})"> 
       {{sID.sTITLE}} 
      </a> 
     </li> 

    </ul> 
+1

당신이 당신의 링크에 매개 변수를 지정하지 않으려면, 당신은 아마 같은 것을 사용해야합니다 .STATE ('substanceDetails', { URL : "/ substanceDetails" PARAMS : { 다음 sID : 널 (null) 를} , templateUrl : 'templates/substanceDetails.html' }) 자세한 정보는 https://github.com/angular-ui/ui-router/wiki/URL-Routing –

답변

0

이 app.js에 당신을 위해 일해야합니다

.state('substanceDetails', { 
    url: "/substanceDetails/:sID", // added :sID for dynamic ID param 
    // url: "/substanceDetails?sID" you could also add sID as a query string 
    templateUrl: "templates/substanceDetails.html", 
    controller: 'substanceDetailsController' 
}) 

그런 다음 URL에 SID를 추가합니다 substances.html에 SREF UI-, 당신은 것입니다 컨트롤러의 해당 ID에 $stateParams으로 액세스 할 수 있어야합니다.

ng-repeat에서도 잘못하고있는 몇 가지 사항이 있습니다. this example I created을 보시고, 필요한 것을 해드립니다.

+0

에 대한 다음 링크를 확인하십시오. Ethan May 감사합니다. ,하지만 여기까지있어 ... 거기에서 일하는 법을 모르니까 문제가되는 것은 $ stateParams입니다. – SandraK

+0

SubstanceDetailsController를 생성해야합니다. 그러면 $ stateParams'를 사용하여 컨트롤러에 전달한 매개 변수를 봅니다. 상태. '$ stateParams'를 사용하여 컨트롤러에 매개 변수를 전달하는 방법에 대한 자세한 정보는이 스레드의 답을보십시오. http://stackoverflow.com/questions/25647454/how-to-pass-parameters-using-ui- sref-in-ui-router-to-controller –

+0

답장을 보내 주셔서 다시 한 번 감사드립니다.하지만 잘못 작동하고 있는지 확인할 수 없습니다. 단지 작동하지 않기 때문입니다. – SandraK

관련 문제