带有矩阵网址符号的Angular2

cpiock:

矩阵url表示法是使用参数创建url的“默认”还是更好地将“ old”表示法与一起使用?和&。我在angular.io文档中不明白

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

要么

localhost:3000/heroes?id=15&foo=foo
保罗·萨姆索塔(Paul Samsotha):

矩阵参数绑定到路径段,而查询参数绑定到URL。它们具有不同的语义。使用更合适的一种。(请参见下面“另请参见”中的链接)。

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

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

参数绑定到heroes当您访问时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;
})

矩阵url表示法是使用参数创建url的“默认”还是更好地将“ old”表示法与一起使用?

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

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

    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

也可以看看:

UPDATE(免责声明)

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

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

话虽这么说,矩阵参数对于代码来说并不那么冗长,所以就我个人而言,我想说使用矩阵参数可能是最好的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章