2016-07-18 4 views
2

こんにちは私は新しい開発者です。この問題はUI-Routerを使用して自分の状態にルートスコープパラメータを渡しています。ここで

は、私はUI-SREFにそれを変更したい私のhrefです:ここでは

href="/mycarts/{{cats.id}}?{{$root.filterParams}} 

は私の状態です:

.state('mycarts', { 
    url : '/mycarts/:id?vendors&' + 
      'price_to&price_from&manufacturer&' + 
      'editor&theme&page&order&filter_by&no', 
    templateUrl : 'partials/mycarts.html', 
    controller : 'MyCartsController' 

そして、これは私がコントローラにパラメータを渡す方法です:

$scope.id = $stateParams.id; 

idパラメータのためのすべてがうまくいきますが、他の文字列クエリも渡す必要がありますが、私はそれに他の文字列のクエリを渡す方法がわからない上記の私のhrefをui-srefに変更する正しい方法は何ですか。そうでない場合は、私はそう

$scope.linkParams = angular.extend({id: $scope.cats.id}, $scope.$root.filterParams); 

のようなあなたのコントローラでui-srefで使用するオブジェクトを作成したい

+0

'UI-SREF =" mycarts({ID:cats.id、ベンダー:$ root.filterParams.vendors}) ' – Phil

+0

@Phil:実際には、$ root.filterParamsには、オブジェクト内のすべてのクエリ文字列値が含まれています。実際には、文字列パラメータもすべて渡すべきですか? 'ui-sref =" mycarts({id:cats.id、ベンダ:$ root.filterParams.vendors、price_to:$ root.filter Params.price_to、price_from:$ root.filterParams.price_from、AND THE REST}) '.....これはクリーンな方法ですか? –

+0

あなたの状態の設定で定義されたパラメータだけが '$ stateParams'で利用可能になります – Phil

答えて

0

でそれを使用します本当にhrefを使う必要があり、コントローラに関数を書き、ボタンやリンクのonclickとして呼び出す必要があります。

HTML

<a style="text-decoration: underline" href="" ng-click="gotToMycarts()">Go</a> 

のJavascript

.controller('TestController',function($state){ 
    $state.transitionTo('mycarts',{id :12,vendors:'Test',price_to:200}); 
}).controller('MyCartsController',function($state, $stateParams){ 
    console.log($stateParams.id); 
    console.log($stateParams.price_to) 
}) 
関連する問題