我在数组中有几个div我想要改变高度,即使我记录div的名称并且它给了我正确的对象名称,我仍然得到一个"这是未定义"控制台中的错误消息。
就像我说的那样,当我注销所有div的名字时,他们都是正确的,但是在我要设置高度的行上,我猜这是"这个&#34有问题;某处。
this.divs.forEach(names);
function names(div) {
console.log(div); //goes thought all the divs correctly
this._renderer.setElementStyle(div.nativeElement, 'height', largestHeight + 'px');
}
我在angular2中这样做,万一有人在想。 关心任何帮助。
答案 0 :(得分:2)
在您的函数上下文中没有this
,尝试使用箭头函数:
this.divs.forEach((names) => {
...
});
您也可以将this
绑定到您的函数。
this.divs.forEach(names.bind(this));
答案 1 :(得分:1)
问题在这里
function names(div) {
在JavaScript中,除非您传递另一个this
:
this.divs.forEach(names.bind(this));
或在ES6中
let names = (div) => {
console.log(div); //goes thought all the divs correctly
this._renderer.setElementStyle(div.nativeElement, 'height', largestHeight + 'px');
}