- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想动态更改 ngTemplateOutlet 中的模板。ngTemplateOutlet 将在 selectedTab 更改时更改。
下面有两个基本模板,分别称为#Tab1 和#Tab2。
注意:我使用的是 Angular 版本 4。
选项卡菜单示例 (HTML):
<div class="tabMenu">
<ul>
<li *ngFor="let tab of tabLinks" [class.active]="selectedTab.name === tab.name">
<a (click)="selectedTab = tab">{{ tab.name }}</a>
</li>
</ul>
<div class="tabContent">
<tab [data]="selectedTab.data">
<ng-container *ngTemplateOutlet="selectedTab.name;context:selectedTab"></ng-container>
</tab>
<ng-template class="tab1" #Tab1 let-test="data">
<p>Template A - {{ test }}</p>
</ng-template>
<ng-template class="tab1" #Tab2 let-test="data">
<p>Template B - {{ test }}</p>
</ng-template>
</div>
</div>
这是基本的 typescript 数组:
tabLinks: Array<Object> = [
{
name: "Tab1",
data: "data tab 1"
},
{
name: "Tab2",
data: "data tab 2"
}
];
selectedTab: Object = this.tabLinks[0];
最佳答案
如果您使用@ViewChild()
而不是直接模板变量引用,您可以使用this['foo']
来访问名为foo 的字段
:
@ViewChild('Tab1') tab1:TemplateRef<any>;
@ViewChild('Tab2') tab2:TemplateRef<any>;
<ng-template class="tab1" #Tab1 let-test="data">
<p>Template A - {{ test }}</p>
</ng-template>
<ng-template class="tab1" #Tab2 let-test="data">
<p>Template B - {{ test }}</p>
</ng-template>
<ng-container *ngTemplateOutlet="this[selectedTab.name];context:selectedTab"></ng-container>
关于Angular 2 动态更改 ngTemplateOutlet 中的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46633431/
我需要在两个不同的地方重复相同的代码。profile1 和 profile2 是数组。我想重复相同的 html 代码而不重复它们 profile1 = [{name : 'mr.A1',age
我正在阅读有关 *ngTemplateOutlet 指令的内容。该指令的用途是通过模板引用和上下文对象作为参数动态实例化模板。 我想知道的是,我们在 Angular 中有很多东西可以实现与 *ngTe
我正在使用具有动态值的 ngTemplateOutlet。 在哪里config是一个对象 在哪里config[part]是一个 bool 值 在哪里par
我正在尝试使用与 Angular Material 7 相关的拖放功能。 我使用 ngTemplateOutlet 将模板分成可重复使用的部分每个选项都可以是 东西 ™ 或嵌套的 东西 ™ 还有更多子
我想在 .ts 文件中包含一个模板字符串,并将其添加到 NgTemplateOutlet。 我希望这会奏效,但没有奏效。 其中模板是范围内的字符串变量。所以我实现了这个,但是这也没有像我想要的那样工
我正在尝试模拟一组动态问题。想想一个测验,其中一个问题是多项选择,第二个是单选题,第三个是是不是……等等。 使用 Angular 4.1,我认为使用 ngTemplateOutlet 进行模板化是实现
有没有办法动态设置 *ngTemplateOutlet 指令的值? 类似的东西: some text inside a div some text inside a span
我正在尝试在 Angular2 中构建一个列表组件,它从组件的用户那里获取项目、列和项目字段的模板。所以我正在尝试使用 ngTemplateOutlet 和 ngOutletContext(我读过的是
我有一个子组件,它接受 TemplateRef 作为 @Input 并通过 ngTemplateOutlet 显示它。如何使用 @ViewChild/@ViewChildren 检索模板内的组件? 如
我有一个 ng-template,它是从我的一个组件传递过来的,我有一个占位符来接受传递给我的组件的 ng-template,如下 ngTemplateOutlet 所示。
为什么要使用cdkPortal超过内置指令 ngTemplateOutlet和 ngComponentOutlet在 Angular 。它们不是都提供相同的功能吗? CDK 门户中是否有没有内置指令的
我们有一些数组,例如: heroes: Hero[]; villains: Villain[]; ... puppies: Puppy[] 和一个类似的模板 {{ individual.na
假设我有以下组件: @Component({ selector: 'todo-lib', template: ` {{todo.title}} delete
我正在尝试为字符串数组的每个字段传递不同的模板。 TS export class MyComponent { fields = ['name', 'person.age', 'created_at
我想动态更改 ngTemplateOutlet 中的模板。ngTemplateOutlet 将在 selectedTab 更改时更改。 下面有两个基本模板,分别称为#Tab1 和#Tab2。 注意:我
所以我有一个带有 的组件 foo 它正在使用它来获取模板 @ContentChild(TemplateRef) public tmpl: TemplateRef; 然后像这样在它的模板中使用
我构建了一个可重用的表单输入,它应该在表单内呈现,或者使用父 formGroupName 或作为普通输入控件。 我的代码是这样的: child.component.html: cont
我花了更多时间试图理解以下博文 Creating Reusable Components with NgTemplateOutlet in Angular 上面帖子的工作代码可以在stackblitz
我正在尝试了解如何设置要在 Angular 的 ngTemplateOutlet 中应用的自定义样式。我有两个组件,一个父组件和一个子组件,我将一个模板从父组件传递给子组件,然后使用 ngTempla
vue.js 是否具有与 Angular 的 *ngTemplateOutlet 指令等效的功能?假设我有一些这样定义的组件: Hello, {{f
我是一名优秀的程序员,十分优秀!