2015-12-21 64 views
0

我想配置我的路由,以便能夠接受其URL後的任何整數。 例如,角度路由上的查詢字符串

/product/id/1242 

此整數將被API工廠作爲值來訪問由API查詢。

我已經閱讀了關於設置路線的文件,但一直沒能做到。如果我輸入一個整數的URL,它只是重定向到登錄頁面。

angular.module('myapp123.routes', []) 


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

     $urlRouterProvider.otherwise("/login"); 
     //$location.path('/product').search('queryStringKey', value).search(...); 
     $stateProvider 

      .state('login', { 
       url: '/login', 
       views: { 
        'menuContent': { 
         templateUrl: 'app/core/login/login.html' 
        } 
       }, 
       controller: function ($ionicHistory, $scope) { 
        console.log('Clearing history!'); 
        $ionicHistory.nextViewOptions({ 
         historyRoot: true, 
         disableBack: true 
        }); 
       } 


      }) 

      .state('product', { 
       url: '/product', 
       when:('/product/id/product_id') 
       views: { 
        'menuContent': { 
         templateUrl: 'app/components/product/product.html' 
        } 
       } 


      }) 

回答

0

根據the docs這應該可以做到。 [0-9]將產品ID限制爲數字。

.state('product', { 
       url: '/product/id/{productId:[0-9]}', 
       views: { 
        'menuContent': { 
         templateUrl: 'app/components/product/product.html' 
        } 
       } 
0

Thanks-無法讓您的版本因某種原因而工作。

一個變通辦法,我發現,它的工作原理:

 .state('product', { 
     url: '/product/id/:product_id', 
     templateUrl: 'app/components/product/product.html', 
     controller: function($scope, $stateParams) { 
      $scope.product_id = $stateParams.product_id; 
     } 
    })