我是ember js的新手,下面是我从selectedEntities数组创建标签数组的代码。它的控制台成功地记录了selectedEntities数组中的值,但当将创建的对象(标签)值添加到标签数组时,它总是给出“无法读取未定义的属性'标签'”。如何解决这个问题。
export default class Merchants extends Controller.extend(DebounceQueryParams) {
tags= A([]);
selectedEntities = A([]);
@action
openTestModal() {
this.selectedEntities.forEach(function (e){
console.log("name ", e.contactInfo.contactName);
console.log("e.id ", e.id);
if(e.workflowTask !==null){
console.log("e.workflowTask.currentStatus ", e.workflowTask.currentStatus);
const tag = {
id: e.id,
name: e.contactInfo.contactName,
status: e.workflowTask.currentStatus
};
this.tags.pushObject(tag);
}
const tag = {
id: e.id,
name: e.contactInfo.contactName,
status: e.workflowTask.currentStatus
};
this.tags.pushObject(tag);
});
this.remodal.open('user-assign');
}
}
1条答案
按热度按时间lymgl2op1#
这是因为你在forEach调用中使用了一个
function
关键字。当你这样做的时候,它有自己的this
,当然这个this
里面没有任何标签。要么使用箭头函数,比如.forEach(e => {
,要么把外部的this
保存到一个变量中: