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

产品angular2应用程序中未加载JSON

  •  0
  • Vipin  · 技术社区  · 7 年前

    我正在加载产品。angular2应用程序中的json文件。

    请在下面找到我的申请代码,建议

    应用程序。单元ts

    import { NgModule }      from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { AppComponent }  from './app.component';
    import { HttpModule } from '@angular/http';
    
    @NgModule ({
       imports:      [ BrowserModule,HttpModule],
       declarations: [ AppComponent],
       bootstrap:    [ AppComponent ]
    })
    export class AppModule { }
    

    应用程序。组成部分ts

    import { Component } from '@angular/core';
    import { IProduct } from './product';
    import { ProductService } from './products.service';
    import { appService } from './app.service';
    import { Http , Response } from '@angular/http';
    import { Observable } from 'rxjs/Observable';
    import 'rxjs/add/operator/map';
    
    @Component ({
       selector: 'my-app',
       template: '<div>Hello</div>',
       providers: [ProductService]
    })
    
    export   class   AppComponent  {
       iproducts: IProduct[];
       constructor(private _product: ProductService) {
       }
    
       ngOnInit() : void {
          this._product.getproducts()
          .subscribe(iproducts => this.iproducts = iproducts);
       }
    }
    

    指数html

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Demoproject</title>
      <base href="/">
    
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="favicon.ico">
    </head>
    <body>
      <my-app></my-app>
    </body>
    </html>
    

    产品。json

    [{
       "ProductID": 1,
       "ProductName": "ProductA"
    },
    
    {
       "ProductID": 2,
       "ProductName": "ProductB"
    }]
    

    产品。服务ts

    import { Injectable } from '@angular/core';
    import { Http , Response } from '@angular/http';
    import { Observable } from 'rxjs/Observable';
    import 'rxjs/add/operator/map';
    import 'rxjs/add/operator/do';
    import { IProduct } from './product';
    
    @Injectable()
    export class ProductService {
       private _producturl='app/products.json';
       constructor(private _http: Http){}
    
       getproducts(): Observable<IProduct[]> {
          return this._http.get(this._producturl)
          .map((response: Response) => <IProduct[]> response.json())
          .do(data => console.log(JSON.stringify(data)));
       }
    

    }

    产品ts

    export interface IProduct {
       ProductID: number;
       ProductName: string;
    }
    

    它给了我控制台部分产品中的错误。未找到json文件(404)。

    请推荐任何一个。我是新来的angular2

    1 回复  |  直到 7 年前
        1
  •  1
  •   Vivek Doshi    7 年前

    你需要 export 数据来自 Products.json

    export const productData : IProduct = [{
       "ProductID": 1,
       "ProductName": "ProductA"
    },
    
    {
       "ProductID": 2,
       "ProductName": "ProductB"
    }]
    

    把那个文件放进去 assets 文件夹并访问它。

    有关更多详细信息: READ

    推荐文章