2017-06-22 17 views
0

私はこれに例を見ていますが、私が間違っていることは分かりません。ui-routerを使用してURLにパラメータを渡す

アイテムとその内容をng-viewに読み込みます。ページを更新すると消えます。私は州のURLにパラメータを渡しました。そして、私は次に何をすべきか分かりません。

私のコントローラからログできる人は$stateParamsです。その人はid: 3のアイテムが選択されています。

更新時にもこのアイテムが表示されるようにするにはどうすればよいですか?私のコードの例は非常に高く評価されるでしょう。

var app = angular.module('myApp', ['ngRoute', 'ui.router']); 

app.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', '$routeProvider', function($stateProvider, $locationProvider, $urlRouterProvider, $routeProvider) { 

    $urlRouterProvider 
     .otherwise('/patents'); 

    $stateProvider 
     .state("patents", { 
      url: "/patents", 
      templateUrl: "templates/patents/list/list-patents.htm", 
      controller: "patentListCtrl", 
     }) 
     .state("patents.item", { 
      url: "/:id", 
      templateUrl: function() { 
       //THIS IS WHERE I AM NOT SURE HOW TO PASS THE URL THE ID 
      }, 
      controller: "patentItemCtrl" 
     }) 
}]); 

app.controller('patentItemCtrl', ['$scope', 'patentTabService','$stateParams', '$state', '$routeParams', function($scope, patentTabFactory, $stateParams, $routeParams){ 

     console.log($stateParams.id) 

}]) 
+0

可能な重複:https://stackoverflow.com/a/24261127/1457231たとえば、私はすでにあなたのサービスでは、IDによる特許を取得するための、いくつかの方法を持っていると仮定しています注意してください –

答えて

1

データサービスを呼び出してビューに割り当てることで、必要なデータを取得できるはずです。あなたのケースでは、idと特許を得るためにpatentTabServiceを呼び出し、その特許オブジェクトをあなたの視点にロードします。

app.controller('patentItemCtrl', ['$scope', 'patentTabService','$stateParams', '$state', '$routeParams', function($scope, patentTabFactory, $stateParams, $routeParams){ 
 
     $scope.patent = {}; 
 
     if (Number.isInteger($stateParams.id)){ 
 
     $scope.patent = patentTabFactory.getPatent($stateParams.id); 
 
     } 
 
     
 
     console.log($stateParams.id) 
 
}])

関連する問題