gpt4 book ai didi

angularjs - 使用angular js通过URL传递变量

转载 作者:行者123 更新时间:2023-12-04 06:02:22 24 4
gpt4 key购买 nike

我正在使用 angular 进行电子商务,并且我正在设置无限滚动到产品列表页面。一切正常,但我想使用 URL 来设置页面,以便用户可以通过 URL 访问特定页面。如何在带有 angular 的 URL 中设置像“pageNumber”这样的变量?像“www.page.com/page/2/”(我想获取数字2并将其传递给商店 Controller )

这是我现在拥有的代码

(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;
};

}]);

})();

最佳答案

您使用 $routeParams获取 $route 中特定命名组的值定义。

REFERENCE

示例:

.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
});

关于你的代码,它应该是这样的:
(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;
};

}]);

})();

关于angularjs - 使用angular js通过URL传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com