angular4指令在HTML SPAN标记内不起作用

angular4指令在HTML SPAN标记内不起作用,html,angular,Html,Angular,我已经用angular4编写了一个指令,它在输入字段上工作。 当我在SPAN标记上应用该选项时,它不起作用。 我们可以在SPAN标签上应用这些指令吗,或者有什么解决方法吗 <span dirTemp>45789</span> 解决方法:span没有值,但有innerText或innerHTML。因此,在ngOnInit上,您可以执行以下操作: ngOnInit() { if(this.el.tagName.toUpperCase() !== 'INPUT')

我已经用angular4编写了一个指令,它在输入字段上工作。 当我在SPAN标记上应用该选项时,它不起作用。 我们可以在SPAN标签上应用这些指令吗,或者有什么解决方法吗

<span dirTemp>45789</span>

解决方法:
span
没有
,但有
innerText
innerHTML
。因此,在
ngOnInit
上,您可以执行以下操作:

 ngOnInit() {
    if(this.el.tagName.toUpperCase() !== 'INPUT') {
      //  Apply your tranform here:
      var originalValue =  this.el.innerText;
      this.el.innerText = this.cPipe.transform(originalValue);
    }
  }

您能添加一些代码以便我们能更好地帮助您吗?我添加了我的指令,可能需要添加另一个hostlistener。我正在将该指令应用于表中的一列。默认情况下,TD值在范围内不会触发
focusout
。您应该发布您的html结构,以获得更多关于您正在尝试的内容的上下文do@Pierre好啊我的html非常简单,在一个表中,我有45789@user1015388您已经在构造函数中定义了它<代码>this.el=this.elementRef.nativeElement我试图使用它,this.el.innerText提供空值是的,我发现我的值在SPAN标记中是动态的,在{{}中。所以它是空的。如何获取tatI我需要使用afterviewchecked,因为我的数据在视图完成后呈现。谢谢
 ngOnInit() {
    if(this.el.tagName.toUpperCase() !== 'INPUT') {
      //  Apply your tranform here:
      var originalValue =  this.el.innerText;
      this.el.innerText = this.cPipe.transform(originalValue);
    }
  }