查找在AngularJS中找不到的元素

我在AngularJS中有一个组件,并且有一个类似于以下内容的模板

模板

<div id="{{ $ctrl.idName }}"></div>

组件控制器看起来像这样

组件控制器

export class SomeCtrl {

    idName: string = "idName";

    constructor(public $element) {

    }

    $postLink(): void {
        const divElement = this.$element.find(`#${ this.idName }`);
        console.log(divElement); //divElement is undefined
    }
}

由于某种原因divElement变得不确定,但是,如果我按如下方式在模板中写入名称

<div id="idName"></div>

然后找到该元素。我的假设是模板导致的,尚未完成编译。但是似乎也不是因为这两种原因,因为根据下面的文章ThoughtRam - Exploring Angular 1.5: Lifecycle Hooks

,在完成编译后会触发$postLink()方法
zzc123456 回答:查找在AngularJS中找不到的元素

find括在$timeout中:

export class SomeCtrl {

    idName: string = "idName";

    constructor(public $element,public $timeout) {

    }

    $postLink(): void {
        this.$timeout( _ => {
            const divElement = this.$element.find(`#${ this.idName }`);
            console.log(divElement); 
        });
    }
}

这将使AngularJS框架和浏览器有时间渲染插值。

本文链接:https://www.f2er.com/3155669.html

大家都在问