2017-06-19 39 views
0

摘要角 - 部署JSON文件火力

  • 我有一個角項目與模擬數據
  • 當我生成項目,我堅持JSON文件到「DIST一個JSON文件「文件夾
  • 我有一個角服務,引用JSON文件
  • 我部署到火力和收到錯誤
  • 請原諒這裏認識不足,特別新本

問題

  1. 是否有可能使用JSON文件而在本地主機的工作?
  2. 我對Firebase的部署做了什麼錯誤?

服務

import { IProjects } from './projects.interface'; 
 

 
@Injectable() 
 
export class ProjectsService { 
 
    private _projectURL = '/dist/projects-list.json'; 
 

 
    constructor(private _http: Http) { } 
 

 
    getProjects(): Observable<IProjects[]> { 
 
     return this._http.get(this._projectURL) 
 
      .map((response: Response) => <IProjects[]> response.json()) 
 
      .do(data => console.log('All: ' + JSON.stringify(data))) 
 
      .catch(this.handleError); 
 
    } 
 

 
    getProject(id: number): Observable<IProjects> { 
 
     return this.getProjects() 
 
      .map((projects: IProjects[]) => projects.find(p => p.projectId === id)); 
 
    } 
 

 
    private handleError(error: Response) { 
 
     console.error(error); 
 
     return Observable.throw(error.json().error || 'Server error'); 
 
    } 
 
}

顯示的項目清單

列表組件

export class ProjectsListComponent implements OnInit { 
 
    pageTitle = "Project List"; 
 
    errorMessage: string; 
 
    projects: IProjects[]; 
 

 
    constructor(private _projectsService: ProjectsService) { 
 

 
    } 
 

 

 
    ngOnInit(): void { 
 
     this._projectsService.getProjects() 
 
      .subscribe(projects => this.projects = projects, 
 
      error => this.errorMessage = <any>error); 
 
    } 
 

 
    onRatingClicked(message: string): void { 
 
     this.pageTitle = 'Project List: ' + message; 
 
    } 
 
}
0123在瀏覽器中 enter image description here

收到

錯誤任何幫助,將不勝感激:)

回答

0

你需要添加模擬JSON文件中assets文件夾中的角項目。

,你可以像這樣訪問

getProjects(): Observable<IProjects[]> { 
     return this._http.get("assets/projects-list.json") 
      .map((response: Response) => <IProjects[]> response.json()) 
      .do(data => console.log('All: ' + JSON.stringify(data))) 
      .catch(this.handleError); 
    } 

注: - 你需要添加靜態文件,就像在資產文件夾圖像或配置文件。角度只能訪問資產文件夾。

+0

謝謝@jonnysai! - 我已經嘗試過,沒有太多的運氣。但是,當我運行「ng build - watch」時,json文件現在出現在assets文件夾中。當我部署到Firebase和本地(本地主機)時,我收到同樣的錯誤,但似乎無法找到該文件。 (「無法加載資源:服務器響應狀態爲404(未找到)」 – MegaTron

+0

我不知道Firebase,但它應該在本地工作。嘗試服務 – CharanRoot

+0

啊,我已經在本地和Firebase上都能工作。 url需要是「assets/projects-list.json」,如果你更新了答案,我會將它標記爲「回答」,因爲你已經在那裏教會了我一些新的東西,謝謝你的時間Jonny,非常感謝。 – MegaTron