我分配从端点接收的数组数据。
我尝试在另一个文件中调用此数组,但它不喜欢它!
我的subscriberNames阵列控制台正确。
我的第一个文件:
export class EngagementService {
public orgSubSidNames = [];
let subsidiaryNames = []
data.forEach(sub => {
console.log(sub.SubsidiaryName)
subsidiaryNames.push(sub.SubsidiaryName)
})
subsidiaryNames = subsidiaryNames.filter(this.onlyUnique);
console.log('subsidiary name array' + subsidiaryNames)
this.orgSubSidNames = subsidiaryNames;
// This is just a sample script. Paste your real code (javascript or HTML) here.
if ('this_is' == /an_example/) {
of_beautifier();
} else {
var a = b ? (c % d) : e[f];
}
第二档:
export class EngagementFilterComponent implements OnInit {
public subSidNameArray: EngagementService;
updateSub(data) {
console.log(data);
console.log('attempting to print the subsid array' + this.subSidNameArray.orgSubSidNames)
}
我得到错误:
Cannot read property 'orgSubSidNames' of undefined
最佳答案
在创建EngagementFilterComponent
的代码中
const filter = new EngagementFilterComponent()
filter.subSidNameArray = new EngagementService()
或在构造函数中设置
public subSidNameArray: EngagementService = new EngagementService()
或使用注射
如果您的框架使用注入,请确保您的接收组件使用适当的构造函数。
constructor(private engagementService: EngagementService)
说明
线
public subSidNameArray: EngagementService
声明您的类包含
EngagementService
的实例。您尚未创建一个。必须使用new
关键字创建该类的实例。 :EngagementService
部分是typescript
,用于声明subSidNameArray
的类型,这是普通javascript
中找不到的功能。但是,它不会创建实例。