Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularDart布线,其中参数包含斜线_Dart_Angular Dart - Fatal编程技术网

AngularDart布线,其中参数包含斜线

AngularDart布线,其中参数包含斜线,dart,angular-dart,Dart,Angular Dart,我对Angular和Dart都是新手,我正在编写一个应用程序,它的类别是分层的。这表现为他们的ID是指向该类别(包括其父母)的路径的斜线删除列表——换句话说,“类别1”表示顶级类别,“类别1/类别2”表示孩子,“类别1/类别2/类别3”表示孙子 我希望我的URL方案能够反映这种层次结构(即对于类别2,#类别/category-1/category-2') 这是我当前的RouteInitializerFn(然后我将拉出控制器中“categories”的“CategoriId”参数): void r

我对Angular和Dart都是新手,我正在编写一个应用程序,它的类别是分层的。这表现为他们的ID是指向该类别(包括其父母)的路径的斜线删除列表——换句话说,“类别1”表示顶级类别,“类别1/类别2”表示孩子,“类别1/类别2/类别3”表示孙子

我希望我的URL方案能够反映这种层次结构(即对于类别2,#类别/category-1/category-2')

这是我当前的RouteInitializerFn(然后我将拉出控制器中“categories”的“CategoriId”参数):

void routeInitializer(路由器、RouteViewFactory视图){
views.configure({
“子类别”:ngRoute(
路径:'categories/:categoryId',
查看HTML:“”,
),
“类别”:ngRoute(
路径:'类别',
查看HTML:“”,
),
});
}
不过,这似乎在斜线上绊倒了;URL“#categories/category-1/category-2”的“categoryId”值为“category-1”

AngularJS文档表明这在JS land中是可能的($routeProvider——用于“path”参数的文档);我已经尝试过在没有任何运气的情况下改变我的路径到各种各样的排列,我也无法在问题追踪器中找到任何相关的东西

有什么想法吗

编辑:

好吧,我想我已经弄明白了。罪魁祸首是——具体地说,与参数值匹配的正则表达式至少有一次是“字符串开头以外的任何字符或/”。我认为解决办法是将正则表达式改为r'\?(.+)'(所有旧的单元测试都通过了,就像我破解的新单元测试一样)


不幸的是,看起来没有临时的解决办法。您不能在UrlMatcher的不同实现中进行交换,因为UrlTemplate的使用被烘焙到ngRoute方法中;如果将NgRouteCfg的“path”参数更改为动态类型并断言它是字符串或UrlMatcher(这是route_Hierarchy的内部功能,因此您可以直接传递它),这也是一个合理的解决方案,但目前看来,前进的道路似乎是固定头部。

角度省道教程也提供了一些信息

见:

mount参数允许您定义嵌套管线

void recipeBookRouteInitializer(路由器路由器,RouteViewFactory视图){
views.configure({
“添加”:ngRoute(
路径:'/add',
视图:“view/addRecipe.html”),
“配方”:ngRoute(
路径:'/recipe/:recipeId',
安装:{
“视图”:ngRoute(
路径:'/view',
视图:“view/viewRecipe.html”),
“编辑”:ngRoute(
路径:'/edit',
视图:“view/editRecipe.html”),
“查看默认值”:ngRoute(
defaultRoute:对,
输入:(RouteEnterEvent e)=>
router.go('view',{},
启动自:router.root.findulote('recipe'),
替换:正确)
})
});
}

这个问题展示了一个示例,如何进行分层路由,而不处理参数本身包含斜杠的情况,这正是我在这里需要的。似乎对此的支持已经到位