我需要将数据合并/推送到对象中。
我的代码是:
export class HeaderComponent implements OnInit {
site_heading = "Business Casual";
menubar = [];
isLogged = true;
constructor() {
this.menubar = [{
'link': 'home',
'name': 'Home'
}, {
'link': 'about',
'name': 'About'
}, {
'link': 'store',
'name': 'Store'
}, {
'link': 'products',
'name': 'Products'
}];
let userMenu = [{
'link': 'myprofile',
'name': 'My Profile'
}, {
'link': 'logout',
'name': 'LogOut'
}];
userMenu.forEach(function(value) {
this.menubar.push(value);
});
}
ngOnInit() {}
}
显示错误:
错误TypeError:无法读取未定义的属性“菜单”
答案 0 :(得分:3)
您需要使用箭头功能代替常规功能,以确保this
上下文正常:
...
userMenu.forEach((value) => {
this.menubar.push(value);
});
...
答案 1 :(得分:2)
这应该有效:
let self = this
userMenu.forEach(function (value) {
self.menubar.push(value);
});
或lambda表达式(箭头功能)
答案 2 :(得分:0)
使用箭头功能,
箭头功能是匿名的,不会绑定它自己的。因此,这就是当前情况。
SELECT
cust.imsi,
cust.company_id,
cust.business_plan,
CASE
WHEN
(
SELECT MAX(subop.last_accessed)
FROM operator subop
WHERE subop.msisdn = op.msisdn
GROUP BY subop.msisdn
HAVING COUNT(*) > 1
)
THEN
op.last_accessed
ELSE
'Never'
END
AS last_accessed_date
FROM customer cust
INNER JOIN operator op
ON cust.imsi = op.imsi
WHERE cust.imsi = '74583';