2016-11-02 9 views
0

私は、この質問がおそらく数回尋ねられていることを知っていますが、解決策を見つけることができません。プラス私はこれらの問題(とフレーズ)の専門家ではないので、私と一緒に裸をしてください。AngularJS ui routerのパラメータ

私はIonicでアプリを作っています。オンライン管理サイトの基本的な動的テキストが含まれています。 私はこのデータをアプリケーショントラフjsonに取得できましたが、今では私のアプリケーションに動的リンク(または状態)を作成したいと思います。 私はいくつかの物質のリストを持っていて、それぞれの物質には異なる情報が含まれています。だから、今私はこれらの物質のリストを持っています。特定の物質をクリックすると、この特定の物質のすべての情報を表示する別の状態にする必要があります。

ここで私はこれまで...

データベース持っているコードです:

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:ヌル を} 、 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

関連する問題