用指令查找元素

时间:2019-02-12 13:29:47

标签: angular

你好,我已经搜索了很长时间了,我无法弄清楚。因此,让我解释一下这个问题,我需要向其中添加验证消息的多个控件,而我只想创建一个指令来完成此操作。

话虽如此,我还是要为我要完成的工作和要做的工作创建一个小例子。

我有一个看起来像这样的控件:

<div class="form-group>
    <label>{{label}}</label>
    <input type="text" [(ngModel)]="value"/>
</div>

及其选择器可能类似于:<textbox validation controlTypeToAddValidationTo="input" label="name"></textbox>

我创建了一条指令,如下所示:

@Directive({    selector:'validation' }) 
export class ControlValidation implements OnInit{

    @Input() controlTypeToAddToolTipTo:string;
    constructor(
       private elementRef:ElementRef,
       private render:Render2
    ){}

    ngOnInit():void{
        //TODO add a tooltip to say hello to the input.
    } 
}

好的,现在我们有了一条指令,但是我的问题是我想访问输入,我想使用类似jQuery方法的方法$('input'),但是我不知道该怎么做。从指令执行此操作。如果我想将工具提示添加到输入或按钮或div或其他内容,我希望能够传递。

所以我尝试了 1. this.elementRef.nativeElement.getElementsByTagName('input'),但不会返回孩子。 2. this.render.selectRootElemet('nativeElement')返回第一个文本框元素 3. this.render.nextSibling(this.elementRef);返回未定义

现在好问我一个问题,如何在elementRef中选择想要的项目?

0 个答案:

没有答案