【问题标题】:Displaying Angular 2 JSON Objects显示 Angular 2 JSON 对象
【发布时间】:2016-04-05 21:16:10
【问题描述】:

我有一个带有 Promise 的对象被返回。

我的对象的结构如下:

export class ShoppingCart {
Cart_Items: [
    {
        Id: number,
        SKU: string,
        Link: string,
        ImageURL: string,
        Title: string,
        Description: string,
        Qty: number,
        Unit_Wt: number,
        Unit_Price: number,
        Sub_Total: number,
        Sub_Wt_Total: number,
        IsTaxExempt: boolean
    }
    ];
Shipping_Cost: number;
Taxes: number;
Discount: number;
Sub_Total: number;
Total_Wt: number;
Total: number;

}

我在我的组件类中使用它:

display_cart: ShoppingCart;

constructor(private _shoppingCartService: ShoppingCartService) {}

getShoppingCart() {
    this._shoppingCartService.getShoppingCart().then(display_cart => this.display_cart = display_cart);
    // this.display_cart = this._shoppingCartService.getShoppingCart();
}
ngOnInit(){
    this.getShoppingCart();
}

在我的服务中,我使用它来获取数据:

getShoppingCart() {
    return Promise.resolve(DISPLAY_CART);
}

我唯一可以用来显示任何数据的是 {{ display_cart | json }} 但这只是返回我的 json。如何提取值并在循环中显示 Cart_Items 以及我需要它们的其他变量?

【问题讨论】:

标签: javascript json angular angular2-services


【解决方案1】:

你可以使用类似的东西:

display_cart: ShoppingCart;

constructor(private _shoppingCartService: ShoppingCartService) {}

getShoppingCart() {
    this._shoppingCartService.getShoppingCart().then(
    display_cart => {
      this.display_cart = display_cart;
      this.items = display_cart.Cart_Items ;
    });
}

ngOnInit(){
    this.getShoppingCart();
}

并使用对应模板中的项目:

<li *ngFor="#item of items">
  {{item.title}}
</li>

【讨论】:

  • 我实际上不得不将display_cart: ShoppingCart; 更改为display_cart: ShoppingCart = new ShoppingCart;,这样即使服务器没有返回任何数据,对象仍然被定义并且不会导致错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 2020-06-04
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
相关资源
最近更新 更多