将预设值发送到指令而无需等待

时间:2018-02-19 15:11:06

标签: angular angular-directive

我对此感到非常痛苦,我相信没有别的东西可以谷歌了。

我有一个输入字段,当组件加载时有一个预设值。该值是组的名称,因此在不同的组中是不同的:

基本上this.el.nativeElement在加载时不存在,并且与ngOnInit处于不同的生命周期中。我可以使用setTimeout来解决这个问题,因为这会等待值存在,但这是猜测。

 <input type="text" 
        id="name"
        formControlName="name"
        appPlaceholder
        required>

我有一个指令,需要知道输入上是否有预设值。由于创建一个小组,有时候没有一个。

我遇到的问题是我必须使用setTimeout等待1秒才能让组件在NgInit上加载值:

setTimeout(() => {
  this.activeStateCheck(this.el.nativeElement);
}, 1000);

这不是一个理想的解决方案,我宁愿让属性指令等待数据加载到输入中,然后运行我的函数。

我看过的事情:

  • 我没有太大成功地研究投入
  • 我已经考虑过订阅一个valueChange,但这似乎只发生在 用户实际上更改了输入。

  • 我已经有了setTimeout 谈到。

  • 还使用了很多lifeCycle钩子,比如ngAfterViewInit。

寻找一个很好的例子和解释为什么我需要等待数据显示而不是直接获取nativeElement。

1 个答案:

答案 0 :(得分:1)

尝试以下解决方案: How to dynamically add a directive?

它似乎非常类似于你所需要的。