使用jquery查询构建器后,为什么angular2 Lifecycle Hooks无法正常工作?

时间:2017-11-02 08:53:16

标签: jquery angular query-builder

我在项目中导入了jquery查询构建器How to use Jquery Query Builder in Angular告诉。

ngOnInit() {
this.templateService.getTags(this.contentType)
  .then(tags => {
    this.tags = tags;
  });
}

ngAfterViewInit() {
  this.getQueryBuilder();
}

getQueryBuilder() {
let self = this;
if (self.builder) {
  $(self.builder.nativeElement).queryBuilder({
      plugins: ['bt-tooltip-errors','not-group'],

      filters: [{
          id: 'tag',
          label: 'Tag',
          type: 'string',
          input: 'select',
          values: {
                1: 'Books',
                2: 'Movies',
                3: 'Music',
                4: 'Tools',
                5: 'Goodies',
                6: 'Clothes'
            },
          operators: ['equal']
      }],

      rules: this.rules_basic
  });

}
}

虽然它有效但角度生命周期钩子不起作用。 它总是首先来到getQueryBuilder()函数,通常首先执行ngOnInit(),然后执行gAfterViewInit(),并且自动完成不起作用。为什么?有人能帮助我吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

ngOnInit(){
this.templateService.getTags(this.contentType)
  .then(tags => {
    this.tags = tags;
    this.getQueryBuilder();
  });
}

现在,只有在来自templateService的响应之后,才会执行this.getQueryBuilder()