【发布时间】:2019-09-03 06:02:11
【问题描述】:
为了学习 Angular,我正在编写一个待办事项列表。 我创建了一个带有标题(任务名称)和状态(与复选框输入相关的布尔值)参数的组件任务。
<div>
<div>{{title}} <button>Edit</button></div>
<input type="checkbox" value={{status}}>
</div>
我还创建了一个 ToDoList 组件,其中包含一个标题(待办事项列表的名称,以及一个带有任务名称列表的选项卡,以使用 *ngFor 生成多个任务组件。
<div>
<h1>{{title}}</h1>
<app-task *ngFor="let title of list" [title]="title" status="true"></app-task>
<button (click)="appTaskDirective">Add a task</button>
</div>
现在我想在使用appTaskDirective时点击“添加任务按钮”动态添加任务组件,但我就是想不通。
棱角分明的document example 帮不上忙。
这是我的appTaskDirective 文件:
import { Directive, ViewContainerRef, TemplateRef, OnInit } from '@angular/core';
@Directive({
selector: '[appTaskDirective]'
})
export class TaskDirectiveDirective implements OnInit {
constructor(public viewContainer:ViewContainerRef) { }
}
谢谢。
【问题讨论】:
-
我认为您对属性指令的工作方式有点困惑。为了实现您的目的,您不需要指令,而只需一个在列表数组中推送另一个标题并在按钮单击时调用的方法
-
我创建了这个 stackblitz 来向您展示指令是如何工作的。但是@Yusuff 的回答准确地解释了我在上一条评论中的意思。附言你的 ToDoList 组件是我代码中的 app.component:stackblitz.com/edit/…
标签: angular dynamic components directive