2016-07-06 14 views
1

私は、アプリケーションでディープリンクを作成するためにrouteProviderを使用しています。私の問題は複数のレベルを持つ必要があることです。角度routeProviderと通過スコープ

http://example.com/#/products

$ scope.productsは、製品のすべてが含まれていますので、リンクは次のようになり、私は製品ページを持って言うことができます。製品をクリックすると、$ scope.productsを保存してURLをhttp://example.com/#/products/1に変更する必要があります。 '/ 1'は製品のIDです。お使いの製品のコントローラ上の

答えて

1

関数を作成および編集ページに、このようなhttp://example.com/#/products何かをナビゲートするためにそれを呼び出す...あなたの編集コントローラコールの$ routeParams上

$scope.edit = function (data) { 
     $window.location.href = '#/Products/Edit' + '?id=' + data.id; 
    }; 

をとして、あなたのAPIからオブジェクトをロードそれは...あなたもこのようなものを使用して$ routeProvider定義を更新する必要が

.when('/Product/Edit', { 
     templateUrl: function (params) { return 'Products/Edit?id=' + params.id ; } 
    }) 

function loadProduct() 
    { 
     productEditFactory.getProduct($routeParams.id).then(function (response) { 
      $scope.product = response.data; 
     }, function (response) { 

     }); 
    } 

    if ($routeParams.id) 
    { 
     loadProduct(); 
    } 
    else { 
     $scope.editMode = false; 
    } 

を変更している場合があります

+0

しかし、この問題は、$ scope.productsを保持しないということです。 –

+1

$ rootスコープを使用して通常の$スコープがナビゲーション間で消去されるので、配列を維持することができます – Tavitos

関連する問題