2014-07-16 48 views
0

如何在引導模式下打開路徑模板,而不離開當前頁面,並考慮以下情形?在不同路線上使用角度自舉模式

我有路由器

$routeProvider 
     .when('/', { 
      templateUrl: '/views/products.html', 
      controller: 'MainCtrl' 
     }) 

     .when('/product/:articleId', { 
      templateUrl: '/views/product-detail.html', 
      controller: 'ProductDetailCtrl' 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }); 

控制器

angular.module('n2goApp') 
     .controller('MainCtrl', function($scope, $location, $cookieStore, api) { 
     api.products().then(function(response) { 

       $scope.products = response; 
       $scope.totalItems = response.total; 
       $('#loading').hide(); 
      }) 

}); 

生產的第一視圖,這是一個列表和超鏈接ロ第二視圖,並會在模式

<div ng-controller="MainCtrl"><h2><div ng-repeat="product in products"><a href="/product/{{ product.productid}}">{{ product.productname}}</a></h2></div></div> 

現在,當打開用戶點擊鏈接將被路由到第二個控制器,模態將被生成但離開當前頁面//不應該離開,身後應該留在當前視圖

angular.module('n2goApp') 
    .controller('ProductDetailCtrl', function ($scope,$modal, api, $routeParams) { 
    var articleID = $routeParams.articleId; 
    $scope.edited = api.product(articleID); 
    $modal.open({templateUrl:'/views/product-detail.html'}); 

    }); 

當用戶關閉模式應該看到之前訪問過的視圖

+0

你的目標不是很清楚。關於離開當前頁面的聲明是非常令人困惑的 – charlietfl

回答

0

我不認爲你需要爲這個路線。你爲什麼不簡單地使用AngularJS Anchor,點擊哪一個會用模板加載模態。路由用於切換URL,但您不想這樣做。

如果您絕對必須使用路線,那麼一旦模態關閉(在onClose()處理程序或同等電話號碼$location.path("/")),您可以通過轉換回'/'路線來模擬此路線。 當然這意味着您的主頁控制器會重新執行。

+0

感謝與錨的提示我會試一試 – fefe