Typescript 指令选择器不';找不到元素

Typescript 指令选择器不';找不到元素,typescript,angular,Typescript,Angular,当我将选择器更改为'input'时,它会在它能找到的每个输入上工作。如果我将其更改为'input[numeric]'什么也不会发生(是的,input[numeric]确实存在)。 我做错了什么?它不是应该这样工作吗?文档中说CSS选择器 import {Directive, ElementRef} from '@angular/core'; import {NgModel} from '@angular/common'; @Directive({ selector: 'input[nu

当我将选择器更改为
'input'
时,它会在它能找到的每个输入上工作。如果我将其更改为
'input[numeric]'
什么也不会发生(是的,
input[numeric]
确实存在)。 我做错了什么?它不是应该这样工作吗?文档中说CSS选择器

import {Directive, ElementRef} from '@angular/core';
import {NgModel} from '@angular/common';

@Directive({
    selector: 'input[numeric]',
    host: {
        '(input)' : 'onInputChange()'
    }
})
export class NumberFormatDirective {

    constructor(public model: NgModel, public element: ElementRef) {
        console.log(1);
    }

    onInputChange(): any {
        console.log(2);
    }
}
模板如下所示:

<input *ngIf='!isMultiLine()'
       [attr.readonly]='readonly'
       [attr.disabled]='isInputDisabled()'
       [attr.minlength]='minLength'
       [attr.maxlength]='maxLength'
       [attr.numeric]='isNumeric()'
       [(ngModel)]='value' (ngModelChange)='valueChanged($event)'
       (keyup.enter)='updateValueRestore()'
       (keyup.escape)='resetValue()'
       (focus)='onFocus()'
       (blur)='onBlur()'
       autocomplete='off'/>

检查

plnkr.co/edit/VFRqjipiFFJqYdnSIM49?p=预览


它按预期工作。

检查

plnkr.co/edit/VFRqjipiFFJqYdnSIM49?p=预览


正如预期的那样工作。

输入[numeric]的“真的存在”看起来是什么样子的?我添加了html代码,我认为它应该工作。你能在Plunker中复制吗?它按预期工作。我添加了模板代码。也许你也可以看看。因为属性是动态添加的,所以不能找到元素吗?输入[numeric]的“真的存在”看起来是什么样子?我添加了html代码,我认为它应该可以工作。你能在Plunker中复制吗?它按预期工作。我添加了模板代码。也许你也可以看看。由于属性是动态添加的,因此无法找到元素?答案应直接包含基本部分,而不是仅链接到外部资源。链接可能会过时。答案应该直接包含基本部分,而不仅仅是链接到外部资源。链接可能会过时。