gpt4 book ai didi

javascript - 处理灵活的参数量

转载 作者:行者123 更新时间:2023-11-30 05:30:51 25 4
gpt4 key购买 nike

我的代码中有这句话:

.state('category', {
url: '/categories/:parameter',
templateUrl: 'templates/common/categories.html',
controller: 'categoriesCtrl',
resolve : {
categoryList: ['Products', function (Products) {
return Products.listByCategories($stateParams.parameter);
}]
}
})

这只是一个简单的网上商店,您知道……根据类别列出产品。问题是类别的数量必须是动态的......我可以,例如请求:

/categories/shoes
/categories/shoes/man/
/categories/shoes/man/running
/categories/shoes/man/running/nike

因此,参数必须是动态的,但我不知道该怎么做。谁能帮我?谢谢!

最佳答案

在我看来,您有 2 个选择:

选项 1(我不建议使用,但这是一个选项):

$stateProvider.state('category', {
// All patterns may be changed, just remember to keep the {0, x} the 0 is important to allow // emptiness between slashes.
url: '/categories/{item:[a-z0-9\-]{0,8}}/{gender:[a-z]{0,6}}/{sport:[a-z]{0,12}}/{company:[a-z0-9]{0,8}}',
controller: function($stateParams) {
console.log($stateParams);
}
});

您将能够使用:

  • /categories/shoes///
  • /categories/shoes/man//
  • /categories/shoes/man/running/
  • /categories/shoes/man/running/nike

选项2(我喜欢):

$stateProvider.state('category', {
// Pattern can be changed except the \/
url: '/categories/{details:[a-z0-9\/\-]{0,20}}',
controller: function($stateParams) {
console.log($stateParams);
}
});

现在您可以使用任何组合,只要它以 /categories/ 开头:

  • /categories/shoes/man/running/nike

那么现在你只需要使用 split()方法,然后决定:

  1. 键 0 将包含项目。
  2. 键 1 将包含性别。

对于您或客户输入性别而不是项目的情况,您可以检查 key 0items whitelist(array with items),享受吧。

关于javascript - 处理灵活的参数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156088/

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