- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试创建一个 Structural Directive其行为类似于 RouterLinkActive
指令。
所以我实现了 UnlessDirective示例并添加了 Angular 的 RouterLinkActive
directive 中的部分它通过 ContentChildren
获得 child 的地方装饰器。
// TODO(issue/24571): remove '!'.
@ContentChildren(RouterLink, { descendants: true })
links !: QueryList<RouterLink>;
// TODO(issue/24571): remove '!'.
@ContentChildren(RouterLinkWithHref, { descendants: true })
linksWithHrefs !: QueryList<RouterLinkWithHref>;
我的模板是这样的:
<p *appUnless="false">
This paragraph is displayed because the condition is false.
<a routerLink="/another-page">my link</a>
</p>
我尝试访问链接:
ngAfterContentInit(): void {
console.log("links length", this.links.length);
console.log("linksWithHrefs length", this.linksWithHrefs.length);
}
问题是,links
和 linksWithHrefs
变量从来没有填充任何内容。我错过了什么?完整代码在 this stackblitz .我正在使用 Angular 7。
最佳答案
有 2 个问题,一个与您的指令的执行直接相关:
您没有导入 RouterModule
,最重要的是调用forRoot(...)
,进入你的根模块。为此, anchor 在您的根组件模板中不受限于RouterLinkWithHref
实例。`
您的指令是结构化的这一事实并不允许您查询内容子项。这里是语言的地方有点棘手,所以我会做一些研究并更新我的答案稍后。
目前,如果您基本上通过一个属性将指令重构为 in this stackblitz ,它将按预期工作。
关于angular - ContentChildren 在查询 RouterLink 和 RouterLinkWithHref 时不会加载任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139543/
我正在处理路由组件的测试,我总是得到,我想可能必须导入更多模块或提供一些东西,但我无法使其正常工作?下面是错误和代码... TypeError: Cannot read property 'subsc
我正在尝试创建一个 Structural Directive其行为类似于 RouterLinkActive指令。 所以我实现了 UnlessDirective示例并添加了 Angular 的 Rout
我正在为 AppComponent 准备单元测试用例,该用例将路由器作为注入(inject)的依赖项,并在我的测试台中包含了 RouterTestingModule。但仍然出现奇怪的错误。请找到如下所
我不明白我做错了什么,我没有找到任何 RouterLinkWithHref 链接到测试中的任何错误,而且我没有在任何地方使用 RouterLinkWithHref,据我所知知道了:/ 谁能帮我解决这个
我是一名优秀的程序员,十分优秀!