html – 错误_renderer.setElementStyle“无法在[null]中设置未定义的属性’background-color’”

前端之家收集整理的这篇文章主要介绍了html – 错误_renderer.setElementStyle“无法在[null]中设置未定义的属性’background-color’”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为Angle2在 udemy课程中研究angular2,老师写了一个突出显示html元素的指令.

我试图做休闲,但对我来说_renderer.setElementStyle抛出异常.

EXCEPTION: TypeError: Cannot set property ‘background-color’ of
undefined in [null]

指令:

import {Directive,ElementRef,Renderer,OnInit} from 'angular2/core';

@Directive({
    selector: '[highlight-directive]'
})

export class HighlightDirective implements OnInit{
    private _defaultColor= 'green';

    constructor(private _elmRef: ElementRef,private _renderer: Renderer) {}

    ngOnInit(): any {
        this._renderer.setElementStyle(this._elmRef,"background-color",this._defaultColor);
        //this._elmRef.nativeElement.style.backgroundColor = this._defaultColor; //this way works fine.
    }
}

我使用该指令的模板:

template: `
    <div highlight-directive>
        Highlight me
    </div>
    <br>
    <div highlight-directive>
        2 Highlight me 2
    </div>
`,

教师工作区:

任何人都能找到我做错的事吗?

谢谢.

解决方法

正如@NirSchwartz所建议的那样

由于beta.1渲染器不再使用ElementRef,而是使用nativeElement,因此添加背景颜色的渲染器行应该如下所示

this._renderer.setElementStyle(this._elmRef.nativeElement,this._defaultColor);

您可以在CHANGELOG中检查所有这些更改.具体到您的情况,您应该检查beta.1的更改日志(更改部分)

原文链接:https://www.f2er.com/html/226787.html

猜你在找的HTML相关文章