我如何专注于ng模板的标题?

时间:2018-07-31 18:44:25

标签: html angular typescript

我想专注于ng-template的标题。这是我的ng-template标签:  我想使用指令或链接到此html页面的组件来随意关注此ng-template(Sample)的标题。这是我当前的解决方法,但是会产生意外的和看似无关的错误。此错误导致“样本”选项卡没有被集中或选中(我还有其他一些选项卡,可以通过选择它们来浏览所有选项卡),并且没有显示任何内容,但div为空。这是我的解决方法:(省略不相关的代码)。注意:这种解决方法在我第一次打开项目,聚焦并选择“样本”选项卡时完美地起作用,但是此后,我将关闭该项目并打开相同或不同的项目,并且会发生错误,我的控制台日志记录语句告诉我活动元素实际上是我选择的项目的名称,尽管可能超出范围,但我实际上只是在寻找一种有效的方法来专注于ng-template的标题。

@Directive({
    selector: "[autofocusing]"
})
ngAfterViewInit(){
        console.log('after view began');
        console.log('active element is:' + (document.activeElement as HTMLElement).innerText);
        if((document.activeElement as HTMLElement).innerText.trim() === 'Close'){
            var eleList = document.getElementsByClassName('slds-tabs--scoped__link');
            for(var i = 0; i < eleList.length; i++){
                if((eleList[i] as HTMLElement).innerText.trim() === 'DETAILS'){
                    this.element = (eleList[i] as HTMLElement);
                    //Otherwise Angular throws error: Expression has changed after it was checked.
                    // window.setTimeout(() =>
                    // {
                        (eleList[i] as HTMLElement).focus();
                    // });
                    break;
                }
            }
        }
        console.log('after view ended');
        console.log('active element is:' + (document.activeElement as HTMLElement).innerText);

0 个答案:

没有答案