- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让我们假设我有显示数据列表的泛型类型的组件:
interface DataProvider<T> {
getData(): T[];
}
...
template: '<div *vsFor="let item in dataProvider.getData()">
<ng-container *ngTemplateOutlet="rowTemplate; context:{item: item}">
</ng-container>
</div>'
...
class AwesomeList<T> {
@Input dataProvider: DataProvider<T>;
@Input rowTemplate: TemplateRef<T>;
}
当我使用它时出现了一些问题:
<awesome-list [dataProvider]="provider" [rowTemplate]="template"></awesome-list>
<ng-template #template let-object="item">
{{object.name}} // Here, type of object is unclear (?)
</ng-template>
那么有什么方法可以在这里定义对象/项目类?
最佳答案
根据angular doc,您可以通过将标志“strictTemplates”和“fullTemplateTypeCheck”设置为true来实现这一点(在这里查看更多信息:https://angular.io/guide/template-typecheck)
我在stackblitz上做了一个repro,遗憾的是我不认为你在stackblitz中看到这样的错误,你可以在本地复制/粘贴这个,看看它是否适合你(https://stackblitz.com/edit/angular-strict-template-example?file=src/app/app.component.html)
请注意,这仅与 Angular 编译相关,我不确定 VS Code 会给您自动完成功能
编辑 :
坏消息我在本地尝试将标志设置为 true 但它不起作用(对我来说,文档令人困惑,因为它说“推断正确类型的组件/指令,包括泛型。”)
@amakhrov 引用了解释此功能尚未准备好的问题
https://github.com/angular/angular/issues/28731
关于angular - TemplateRef 类型检查/声明类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63425337/
我正在尝试构建一个多选组件,它可以为每个选择选项元素提供一个模板。它大部分都在工作,模板是从选项组件中的 ng-content 中获取的,并显示在“选择弹出框”中。 尝试在选择组件中显示所选选项时遇到
我正在尝试创建一个根据条件创建 View 的指令。就像内置的 ngIf 指令一样。 这是我添加到项目中的所有内容: export class QueryNameContext { public
如果答案是已接受的答案,我会尝试显示复选标记: template: `✔` 但是我得到这个错误: EXCEPTION: No provider for TemplateRef! (NgI
也许我从根本上误解了某些东西,但我试图让 TemplateRef 指向我的组件的模板(在下面的简单示例中只是“Hello”)。我已将我的代码精简到最低限度以尝试找出问题所在: import { Com
也许我从根本上误解了某些东西,但我试图让 TemplateRef 指向我的组件的模板(在下面的简单示例中只是“Hello”)。我已将我的代码精简到最低限度以尝试找出问题所在: import { Com
我希望将组件的 ng-content 的内部文本作为简单字符串获取,以便能够重用它。 我尝试过这样的事情: @Component({ selector: 'my-comp', template
我必须将所有 ngx-bootstrap modals 放在一个 component.html 中,这样我就可以从任何地方访问任何模态。 我试过下面的代码 header.componentn.html
最近我开始积极使用模板来自定义我的 UI 组件。我还使用 OnPush 变化检测策略来优化性能。如果我将模板传递给嵌套组件,一切都会顺利进行。用户操作触发嵌套组件中的更改检测,它向上移动到定义模板的原
我在创建基于自定义 Observable 和自定义项目 TemplateRef 呈现项目集合的组件时遇到问题。 该组件将 Observable 和 TemplateRef 作为输入并适本地呈现它们。问
有没有办法为服务中的现有 html 模板获取 TemplateRef? 问题的背景(因为我一开始可能做错了什么): 我正在创建一个使用 NgbModal 的服务在弹出窗口中显示一些文本。模态需要一个
我们正在构建一个 angular 4 组件库,其中一个组件是 Busy 组件。该组件的目的是允许开发人员在任何包含微调器图形的给定 HTML 元素上创建叠加层。 ... 当值isBusy是真的我们想追
我对如何通过传递 string 来获取 TemplateRef 很感兴趣。 我不想通过组件 html 获取它,因为我只想将它保存在配置中以供所有组件使用。我指的是可以在此处查看的 ng-bootstr
组件 HTML: 组件 TS: @ViewChild('content') public content: TemplateRef; Visual Studio 消息: [ts] Generic
最近我有一个任务,我需要将一个 TemplateRef 传递给组件,它提供一些服务,比如 SomeService。在该模板中,我使用了一个注入(inject)服务 SomeService 的指令。我最
我试图改进我的代码而不是有条件,所以我决定创建一个指令或者如果可能的话创建一个管道,它可以帮助我根据其类型(字符串或模板引用)打印选项卡的标题,我的代码如下,此代码用于我的 Tabs/Tab 组件
我得到的组件 假设我有以下 super 简单的组件: class MyComponent { @Input() simpleContent: string; @ContentC
让我们假设我有显示数据列表的泛型类型的组件: interface DataProvider { getData(): T[]; } ... template: ' ' ...
在 Angular 中试验 ElementRef、TemplateRef、ViewRef 和 ViewContainerRef。我已经创建了一个 HTML 模板,我想从那里创建一个 View 并将该
我正在尝试获取 ng-template 和 input 参数的 TemplateRef。 应用程序组件.html: {{dataItem|json}} 问题是我
我想使用 ViewChildren 从 TemplateRef 生成 QueryList,但无法传递到输入组件。 例如 组件.ts: @ViewChildren(TemplateRef) cellTe
我是一名优秀的程序员,十分优秀!