代码之家  ›  专栏  ›  技术社区  ›  nbar

从服务器将应用程序从测试模型数据切换到真正的json数据

  •  0
  • nbar  · 技术社区  · 6 年前

    我想将应用程序的数据从简单的模拟测试数据更改为服务器的实际数据。我有一个products.service.ts,它使用以下函数获取数据:

      getProducts(product_size_type: string): Observable<Product[]> {
          // return of(PRODUCTSCAT1);
          return this.http.get<Product[]>(this.productsUrl).pipe(catchError(this.handleError('getProducts', [])));
        }
    

    外面的人评论道 return of(PRODUCTSCAT1) 从mock-products.ts返回模型数据,如下所示:

    import { Product } from './product';
    
    export const PRODUCTSCAT1: Product[] = [
            {
                id: 1,
                name: 'Product W 1',
                sex: 'W',
                category: 'cat1',
                origin: 'Korea',
                def_production: 0,
                variants: [
                    { id: 1, name: '35', amount: 12, locked: 1},
                    { id: 2, name: '36', amount: 30, locked: 0},
                    { id: 3, name: '37', amount: 0, locked: 0},
                    { id: 4, name: '38', amount: 30, locked: 0},
                    { id: 5, name: '39', amount: 0, locked: 0},
                    { id: 6, name: '40', amount: 12, locked: 0},
                    { id: 7, name: '41', amount: 60, locked: 0},
                    { id: 7, name: '42', amount: 60, locked: 0},
                    { id: 7, name: '43', amount: 60, locked: 0},
                ]
            },
            {
                id: 2,
                name: 'Product W 2',
                sex: 'W',
                category: 'cat2',
                origin: 'Korea',
                def_production: 0,
                variants: [
                    { id: 1, name: '35', amount: 12, locked: 0},
                    { id: 2, name: '36', amount: 30, locked: 0},
                    { id: 3, name: '37', amount: 0, locked: 0},
                    { id: 4, name: '38', amount: 30, locked: 0},
                    { id: 5, name: '39', amount: 0, locked: 0},
                    { id: 6, name: '40', amount: 12, locked: 0},
                    { id: 7, name: '41', amount: 60, locked: 0},
                    { id: 7, name: '42', amount: 60, locked: 0},
                    { id: 7, name: '43', amount: 60, locked: 0},
                ]
            },
        ];
    

    来自服务器的数据在浏览器中看起来是这样的(没有中断!-我添加了它们以使其可读):

    [{"id":1,"name":"Product One","sex":"W","category":"cat 1","origin":"Korea","def_production":0,"variants":
    [{"id":1,"name":"35","amount":0,"locked":1},
    {"id":2,"name":"36","amount":0,"locked":1},
    {"id":3,"name":"37","amount":0,"locked":1},
    {"id":4,"name":"38","amount":0,"locked":1},
    {"id":5,"name":"39","amount":0,"locked":1},
    {"id":6,"name":"34","amount":0,"locked":1},
    {"id":7,"name":"41","amount":0,"locked":1},
    {"id":8,"name":"42","amount":0,"locked":1},
    {"id":9,"name":"43","amount":0,"locked":1}]},
    {"id":2,"name":"Product Two","sex":"M","category":"cat 2","origin":"Korea","def_production":0,"variants":
    [{"id":10,"name":"35","amount":0,"locked":1},
    {"id":11,"name":"36","amount":0,"locked":1},
    {"id":12,"name":"37","amount":0,"locked":1},
    {"id":13,"name":"38","amount":0,"locked":1},
    {"id":14,"name":"39","amount":0,"locked":1},
    {"id":15,"name":"34","amount":0,"locked":1},
    {"id":16,"name":"41","amount":0,"locked":1},
    {"id":17,"name":"42","amount":0,"locked":1},
    {"id":18,"name":"43","amount":0,"locked":1}]}]
    

    此数据来自一个php脚本,该脚本返回: echo json_encode($array);

    如果我用 console.log(data) 到控制台,或者当我像这样在模板中打印出来时 <pre>{{ data | json }}</pre> 数据看起来非常相似。

    但是,该应用程序不处理来自php脚本的数据,而是处理模型数据。

    我错过什么了吗?我的错误在哪里?或者我怎样才能得到更多的信息?因为我没有收到任何错误信息。

    0 回复  |  直到 6 年前