ui-router $state.includes 匹配所有后代但不匹配父代

ui-router $state.includes matching all descendants but not parent

我想匹配一个状态的所有后代状态,但不匹配状态本身。例如我想匹配 about.person.itemabout.person 但不匹配 about.

我想使用以下通配模式:

$state.includes('about.*.**');

但这不匹配。

这似乎是预期的行为,因为以下测试在添加到 state spec file 时失败(针对 about.person.item 的当前状态进行测试)。

expect($state.includes('about.*.**')).toBe(true);

我可以用 $state.includes('about.**') && !$state.is('about') 完成我需要的,但感觉很笨重。

这是 glob 匹配的预期行为吗?

注意:我已经确定了一个修复程序来使这项工作不会破坏其他测试以供参考:https://github.com/jonotron/ui-router/commit/e39b27a2cb7d88525c446a041f9fbf1553202010

这似乎是一个错误。我已经用这个 PR 打了补丁:https://github.com/angular-ui/ui-router/pull/1680 已经合并到 master.