2014-09-01 18 views
8

Używam kątowego, aby utworzyć e-commerce, i ustawiam nieskończony przewijanie do strony listy produktów. Wszystko działało dobrze, ale chcę użyć adresu URL do ustawienia strony, aby użytkownik mógł uzyskać dostęp do określonej strony za pomocą adresu URL. jak ustawić zmienną taką jak "pageNumber" w adresie URL z kątem? jak „www.page.com/page/2/"(I chcą uzyskać numer 2 i przekazać go do kontrolera magazynu)Przekazywanie zmiennej za pomocą adresu URL z kątowym js

Oto kod mam teraz

(function() { 
var app = angular.module('concurseirosUnidos', ['store-directives', 'ngRoute']); 
    app.config(function($routeProvider, $locationProvider){ 
    $locationProvider.html5Mode(true); 
    $routeProvider 
    .when('/', {templateUrl: 'partials/products-list.html'}) 
    .when("/page/$pageNumber"), { 
     // probably I'd need to put something here? 
    }) 
    .otherwise({redirectTo:'/'});; 
    } 
}); 

    app.controller('StoreController', ['$http', '$scope', function($http, $scope){ 
    var store = this; 
    store.products = [];  

    $http.get('/app/products/products.json').success(function(data){ 
     store.products = data; 
    }); 

    if(typeof page === 'undefined'){ 
     var page = 1; 
    }else{ 
     //if it's defined through the url, page = pageNumberFromURL 
    } 
    $scope.myLimit = 3 * page; 

    $scope.nextPage = function() { 
     page++; // I want this function to actually update the url and get the variable from there 
     $scope.myLimit = 3 * page; 
    }; 

    }]); 

})(); 

Odpowiedz

13

użyć do $routeParams uzyskać wartości konkretnej nazwanej grupy w definicji $route.

REFERENCE

Przykład:

.config(function($routeProvider) { 
    $routeProvider.when('/page/:page_number', { 
    // your route details 
    }); 
}) 

.controller('Ctrl', function($scope, $routeParams) { 
    console.log($routeParams.page_number); // prints the page number 
}); 

W odniesieniu do kodu, powinno to wyglądać mniej więcej tak:

(function() { 
var app = angular.module('concurseirosUnidos', ['store-directives', 'ngRoute']); 
    app.config(function($routeProvider, $locationProvider){ 
    $locationProvider.html5Mode(true); 
    $routeProvider 
    .when('/', {templateUrl: 'partials/products-list.html'}) 
    .when("/page/:page_number"), { 
     templateUrl: 'partials/page.html', // I made this up 
     controller: 'StoreController' 
    }) 
    .otherwise({redirectTo:'/'});; 
    } 
}); 

    app.controller('StoreController', ['$http', '$scope', '$routeParams', function($http, $scope, $routeParams){ 
    var store = this; 
    var page = $routeParams.page_number; 
    store.products = [];  

    $http.get('/app/products/products.json').success(function(data){ 
     store.products = data; 
    }); 

    if(typeof page === 'undefined'){ 
     var page = 1; 
    }else{ 
     // if $routeParams.page_number is defined to you implementation here! 
    } 

    $scope.myLimit = 3 * page; 

    $scope.nextPage = function() { 
     page++; // I want this function to actually update the url and get the variable from there 
     $scope.myLimit = 3 * page; 
    }; 

    }]); 

})(); 
+0

ow, dziękuję ... –

+0

Jeśli to ma rozwiązałeś swój problem, możesz oznaczyć to jako zaakceptowaną odpowiedź. – ryeballar

+0

Sure = D, właśnie sprawdzałem, czy nie mam więcej pytań ... dziękuję jeszcze raz –

Powiązane problemy