升级到final @ angular / cli 1.0.0时出错:意外的令牌<在Object.parse()的位置0的JSON中

时间:2017-04-08 09:52:32

标签: angular

升级到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

之前,我没有遇到这个问题

任何人都可以帮忙指出问题的来源? 我很感激

1 个答案:

答案 0 :(得分:0)

我不确定此错误与升级Angular CLI有什么关系,但我首先将以下代码移至ngOnInit():

inventoryService.getInputPO()
    .subscribe(items => {
        this.data = items;
        console.log(items);
    });