升级到angular / cli 1.0.0之前我的服务获取本地json文件(用于测试)可能与angular-cli 1.0.0 beta 23一起工作。现在我遇到了
的问题获取http://localhost:4200/json/inputInventory/inputInventory.json 404 (未找到)core.es5.js:1084 ERROR SyntaxError:意外的令牌<在 位置0的JSON 在Object.parse()
当前的服务是:
....省略
private inputmaterialInputUrl = 'json/inputInventory/inputMaterial.json'; constructor(private http: Http) { } getInputPO(): Observable<InputInventoryModel[]> { return this.http.get(this.inputInventoryUrl) .map((res: Response) => res.json()) .catch((error: any) => Observable.throw(error.json().error || "Json error")); } .... omitted
组件调用服务
....省略
导出类InputInventoryComponent {
@ViewChild('largeModal') largeModal; id: any; public data: InputInventoryModel[]; public selectedItem = { id: "0", date: "", PO: "", supplier: "", detail: "", price: "", cost: "", note: "" }; constructor(public inventoryService: InventoryService, public router: Router) { inventoryService.getInputPO() .subscribe(items => { this.data = items; console.log(items); }); } ....omitted
和GUI渲染数据项通过* ngFor表达式
json格式化并从json在线检查工具检查有效。
json文件:
[
{ "id": 1,
"date": "01/01/2017",
"PO": "NA12451",
"supplier": "Công Ty TNHH Việt Nam - TMT 256",
"detail": ["02 Máy In LINX 1200","02 Keyboard Mítumi","05 Hộp Mực In LINX1200","12 Cartridges 1033"],
"price": 250000,
"cost": 21500,
"note": "This is note 01 for order 01 date 12/12/2016"
},
{“id”:2,
“date”:“01/02/2017”,
“PO”:“NA12452”,
“供应商”:“CôngTyTNHHViệtNam - TMT 256”,
“细节”:[“05HộpMựcInLINX1200”,“12 Cartridges 1033”],
“价格”:340000,
“费用”:215000,
“注意”:“这是订单01日期12/12/2016的注释01”
},
{“id”:3,
“date”:“2017/03/01”,
“PO”:“NB12453”,
“供应商”:“CôngTyTNHHViệtNam - TMT 256”,
“细节”:[“02MáyInLINX 1200”,“02KeyboardMítumi”,“05HộpMựcInLINX1200”,“12 Cartridges 1033”],
“价格”:250000,
“费用”:200015,
“注意”:“这是订单01日期12/12/2016的注释01”
}
]
在升级到angular / cli 1.0.0和angular 2.4.8
之前,我没有遇到这个问题任何人都可以帮忙指出问题的来源? 我很感激
答案 0 :(得分:0)
我不确定此错误与升级Angular CLI有什么关系,但我首先将以下代码移至ngOnInit():
inventoryService.getInputPO()
.subscribe(items => {
this.data = items;
console.log(items);
});