首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角7-动态添加指令

角7-动态添加指令
EN

Stack Overflow用户
提问于 2018-11-23 12:48:01
回答 1查看 7.9K关注 0票数 5
代码语言:javascript
运行
复制
<input  {{field.validatorDirective}} 
        class="form-control" 
        [ngClass]="{ 'border-danger': hasErrors }" 
        (keyup)="callback()" 
        [formControlName]="field.key" 
        [id]="field.key"
        [type]="field.type" 
        [placeholder]="field.placeholder" 
        [value]="field.value">

field拥有所需的所有内容,但我想动态添加要使用的指令名。

它目前作为string添加为field.validatorDirective

这有错误

TextComponent.html:2错误DOM异常:未能对“元素”执行“setAttribute”:“{field.validatorDirective}”不是有效的属性名。

我的指令有选择器usernameValidator

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 12:56:13

看来你不能这么做。我确实尝试过使用[attr.directiveSelector]="condition",但也不适用于此。

解决方案(如果您对其中一个感兴趣的话)是在两个输入上都有一个*ngIf。就像这样:

代码语言:javascript
运行
复制
<input  directive1
    *ngIf="condition1"
        class="form-control" 
        [ngClass]="{ 'border-danger': hasErrors }" 
        (keyup)="callback()" 
        [formControlName]="field.key" 
        [id]="field.key"
        [type]="field.type" 
        [placeholder]="field.placeholder" 
        [value]="field.value">

<input directive2
    *ngIf="condition2"
    class="form-control" 
    [ngClass]="{ 'border-danger': hasErrors }" 
    (keyup)="callback()" 
    [formControlName]="field.key" 
    [id]="field.key"
    [type]="field.type" 
    [placeholder]="field.placeholder" 
    [value]="field.value">
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53447021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档