gpt4 book ai didi

带有矩阵 url 符号的 Angular2

转载 作者:太空狗 更新时间:2023-10-29 16:52:25 25 4
gpt4 key购买 nike

矩阵 url 表示法是使用参数创建 url 的“默认”还是更好地使用“旧”表示法?和 &。我在 angular.io 文档上没看懂

localhost:3000/heroes;id=15;foo=foo

localhost:3000/heroes?id=15&foo=foo

最佳答案

矩阵参数与路径段相关联,而查询参数与 URL 相关联。它们具有不同的语义。使用哪个更合适。 (请参阅下面“另请参阅”中的链接)。

也许很难说,因为你总是在 URL 的末尾看到它,但这也是矩阵参数

localhost:3000/heroes;id=15;foo=foo/bar/baz

参数与英雄相关联。当你访问 route.url 时,你会看到这个

this.route.url.subscribe((url: UrlSegment[]) => {
let heroes = url[0];
let heroesMatrix = heroes.parameters();
// heroes should contain id=5, foo=foo
let bar = url[1].path;
let baz = url[2].path;
})

Is the matrix url notation the "default" to creating urls with parameters or is better to use the "old" notation with ?

不,两者都可以使用,而且如何使用(创建)它们完全不同

  • 通过在数组中的路径元素之后传递一个对象,将矩阵参数绑定(bind)到每个路径段

      router.navigate(['/foo', { id:1 }, 'bar', {baz: 2 } ])

    在这里你会得到/foo;id=1/bar;baz=2

  • 通过将 NavigationExtras 作为导航的第二个参数传递来创建查询参数

      router.navigate(['/foo'], { queryParams: { bar: 1, baz: 2 }});

    在这里你得到 /foo?bar=1&baz=2

另请参阅:

更新(免责声明)

如果您阅读有关可选参数的 Angular 文档,他们会觉得上述语义对于使用 Angular 来说并不是很重要。我可能不得不同意。 REST API 的语义更为重要。

对于 Angular 应用程序,唯一真正关心这些参数的人是我们开发人员。用户不关心。它不是我们应该坚持众所周知的语义的 REST API。对于我们的 Angular 应用程序,只要我们开发人员知道如何使用参数(无论是矩阵还是查询),我们使用哪一个都不重要。

话虽这么说,矩阵参数对代码来说不那么冗长,所以就我个人而言,我认为使用矩阵参数可能是最好的方法。

关于带有矩阵 url 符号的 Angular2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171262/

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