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

在学习Angular2的Udemy课程时,遇到一个问题:在自定义指令中尝试使用_Renderer.setElementStyle设置元素背景色时抛出异常。问题出在尝试设置未定义的属性。将代码改为直接操作nativeElement的style属性后正常工作。现在寻求帮助找出导致异常的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在为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: `

Highlight me

2 Highlight me 2

`,

教师工作区:

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

谢谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值