Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 有条件地添加指令_Angular - Fatal编程技术网

Angular 有条件地添加指令

Angular 有条件地添加指令,angular,Angular,我想有条件地向组件添加一个指令(其中,au disabled、au accent和au focused是指令): 使用以下命令,我的代码可以用更少的HTML处理组合: <au-placeholder [au-disabled]="disabled" [au-accented]="accented" [au-focused]="focused"></au-placeholder> 但是呈现的HTML总是包含所有的指令,每个指令都带有一个真值。。。组件必须测试每个指令的

我想有条件地向组件添加一个指令(其中,
au disabled
au accent
au focused
是指令):

使用以下命令,我的代码可以用更少的HTML处理组合:

<au-placeholder [au-disabled]="disabled" [au-accented]="accented" [au-focused]="focused"></au-placeholder>

但是呈现的HTML总是包含所有的指令,每个指令都带有一个真值。。。组件必须测试每个指令的真值才能正确响应,但如果不应用不相关的指令,则会更干净。有更好的方法吗?

不支持这种方法。 只有组件可以有条件地添加/删除

你能做的就是传递一个值,让指令知道它不应该做任何事情

另请参见

OK。。。这就是
表单所做的。。。
<!-- all of the prior <template [ngIf]= ... -->

<!-- plus -->

<template [ngIf]="disabled && accented">
    <au-placeholder au-disabled au-accented></au-placeholder>
</template>

<template [ngIf]="disabled && accented && focused">
    <au-placeholder au-disabled au-accented au-focused></au-placeholder>
</template>

<!-- etc -->
<au-placeholder [au-disabled]="disabled" [au-accented]="accented" [au-focused]="focused"></au-placeholder>