无法从 Angular 中的模型访问数组
Can not acces array from model in Angular
我一直在尝试从我的对象访问数组。
这是我的 class:
export class Competence {
private _id: string;
private _name: string;
private _isFinished: boolean;
private _subCompetences: string[];
constructor(name: string, isFinished: boolean, subCompetences: string[]) {
this._name = name;
this._isFinished = isFinished;
this._subCompetences = subCompetences;
}
还有 getter 和 setter。
我一直在尝试从这段代码中的能力对象调用子能力:
export class StudentModuleDetailsComponent implements OnInit {
private competences: Competence[] = [];
private subcompetences: SubCompetence[] = [];
constructor() { }
ngOnInit() {
this.getData()
}
private showSubCompetences(competence: Competence) {
this.chosenSubCompetences = [];
console.log(competence.subCompetences)
通过点击事件调用 showSubCompetences() 方法,点击的权限作为参数给出。
权限对象在此方法中初始化,工作得很好。
private getData() {
this._apiModulesDataService.getModuleById(this._studentDataService.moduleId).subscribe(
data => {
this._apiModulesDataService;
var self = this;
this.module = data[0];
this.module.competences.forEach(function (comp) {
self._apiCompetenceDataService.getCompetenceById(comp).subscribe(
c => {
if (!self.competences.includes(c)) {
self.competences.push(c[0]);
}
}
);
});
});
}
}
现在当我点击权限时它只打印出 undefined。
当我只打印权限时
console.log(competence)
我得到这个 Json 作为输出
{id: "f39356b0-e2a9-11e8-858b-23856324831a", isfinished: null, name:
"Knippen", subcompetences: Array(2)}
id: "f39356b0-e2a9-11e8-858b-23856324831a"
isfinished: null
name: "Knippen"
subcompetences: Array(2)
0: "08638e20-e2aa-11e8-858b-23856324831a"
1: "0d772570-e2aa-11e8-858b-23856324831a"
length: 2
我该如何解决这个问题?
嗯,首先我建议修复你的模型以避免任何未来的错误:
export class Competence {
private _id: string;
private _name: string;
private _isfinished: boolean;
private _subcompetences: string[];
constructor(name: string, isFinished: boolean, subCompetences: string[]) {
this._name = name;
this._isfinished = isFinished;
this._subcompetences = subCompetences;
}
...
}
然后,尝试像这样记录子能力:
console.log(competence.subcompetences)
此外,使用新模型,您应该也能正确获得 isfinished
属性...
希望对您有所帮助。
我一直在尝试从我的对象访问数组。 这是我的 class:
export class Competence {
private _id: string;
private _name: string;
private _isFinished: boolean;
private _subCompetences: string[];
constructor(name: string, isFinished: boolean, subCompetences: string[]) {
this._name = name;
this._isFinished = isFinished;
this._subCompetences = subCompetences;
}
还有 getter 和 setter。
我一直在尝试从这段代码中的能力对象调用子能力:
export class StudentModuleDetailsComponent implements OnInit {
private competences: Competence[] = [];
private subcompetences: SubCompetence[] = [];
constructor() { }
ngOnInit() {
this.getData()
}
private showSubCompetences(competence: Competence) {
this.chosenSubCompetences = [];
console.log(competence.subCompetences)
通过点击事件调用 showSubCompetences() 方法,点击的权限作为参数给出。
权限对象在此方法中初始化,工作得很好。
private getData() {
this._apiModulesDataService.getModuleById(this._studentDataService.moduleId).subscribe(
data => {
this._apiModulesDataService;
var self = this;
this.module = data[0];
this.module.competences.forEach(function (comp) {
self._apiCompetenceDataService.getCompetenceById(comp).subscribe(
c => {
if (!self.competences.includes(c)) {
self.competences.push(c[0]);
}
}
);
});
});
}
}
现在当我点击权限时它只打印出 undefined。
当我只打印权限时
console.log(competence)
我得到这个 Json 作为输出
{id: "f39356b0-e2a9-11e8-858b-23856324831a", isfinished: null, name:
"Knippen", subcompetences: Array(2)}
id: "f39356b0-e2a9-11e8-858b-23856324831a"
isfinished: null
name: "Knippen"
subcompetences: Array(2)
0: "08638e20-e2aa-11e8-858b-23856324831a"
1: "0d772570-e2aa-11e8-858b-23856324831a"
length: 2
我该如何解决这个问题?
嗯,首先我建议修复你的模型以避免任何未来的错误:
export class Competence {
private _id: string;
private _name: string;
private _isfinished: boolean;
private _subcompetences: string[];
constructor(name: string, isFinished: boolean, subCompetences: string[]) {
this._name = name;
this._isfinished = isFinished;
this._subcompetences = subCompetences;
}
...
}
然后,尝试像这样记录子能力:
console.log(competence.subcompetences)
此外,使用新模型,您应该也能正确获得 isfinished
属性...
希望对您有所帮助。