我搜索了
问题的解决方案
core.umd.js:3523 ORIGINAL EXCEPTION: Cannot read property 'fullName' of undefined
Exception来自Template获取特定属性:
{{project.collaborators["0"]["fullName"]}}
我也发现了一些有用的answer。
但我正在寻找一种定义全局服务的方法,该服务将检查每个对象并用缺省值替换missing / empty属性,即-
而不是检查每个模板的每个属性,而不会使代码减少错误。
// undefined-obj.service.ts
import { Injectable } from '@angular/core';
@Injectable()
export class UndefinedObjectsGlobalService {
private charecterToReplace: string = '-'; // set defualt value
replaceDefaultCharecter(object: any, charecterToReplace: string): any {
this.charecterToReplace = charecterToReplace;
// create instance vars to store keys and final output
let keyArr: any[] = Object.keys(object),
var dataArr: any[];
// loop through the object,
// pushing values to the return array
keyArr.forEach((key: any) => {
// if key is null at any iteration then replace is with given text
if (key == null){
dataArr.push(object[key] = this.charecterToReplace);
// else push
}else{
dataArr.push(object[key]);
}
});
// return the resulting array
// need to convert is back to object any idea ?
return dataArr;
}
}
因为我是棱角分明的新人所以班级undefinedObjectsGlobalService
可能是错误的
请帮忙。
答案 0 :(得分:2)
您似乎试图访问不存在的对象的属性。
Angular已经为elvis操作员提供了处理此类事情的方法。
listViewTop.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listViewBottom.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listViewTop.setSelector(android.R.color.holo_blue_light); // replace with your color
listViewBottom.setSelector(android.R.color.holo_blue_light);
您可以看到示例here。