2017-03-20 19 views
1

親愛なるStackOverflowのコミュニティ、私はいくつかのJSONデータを取得するためのHTTPリクエストを行うためにtyringだ角度2輸入HTTPは

に失敗しました。

import {Injectable} from "angular2/core"; 
import { Http } from '@angular/http'; 
import {Trainer} from "./trainer" 

@Injectable() 
export class TrainerService 
{ 
    private baseUrl : string = 'http://10.161.48.16:8080/campus/trainers'; 

    constructor(private http : Http) 
    {} 

    getAllTrainers() 
    { 
     let trainer$ = this.http 
     .get(this.baseUrl); 
     return trainer$; 
    } 
} 

しかし、コンソールログこの:interweb検索をたくさんした後

17.03.20 13:17:00 404 GET /@angular/http 

、HTTPモジュールのインポートに問題があるようですが、(私のオートコンプリートaltoughその上にすべてのメソッドを見つけることができます)。私も間違っている可能性があります。

私はこれに完全に初心者です。私は本当に解決策を見つけることができません。

package.json

{ 
    "name": "campus-webapp", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "@angular/http": "~2.4.0", 
    "angular2": "2.0.0-beta.7", 
    "systemjs": "0.19.22", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "zone.js": "0.5.15" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.1.0", 
    "typescript": "^1.7.5", 
    "typings":"^0.6.8" 
    } 
} 

typings.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "baseUrl": "map", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

index.htmlを

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Hello World</title> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.33.3/es6-shim.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.20/system-polyfills.js"></script> 
    <script src="https://code.angularjs.org/2.0.0-beta.6/angular2-polyfills.js"></script> 
    <script src="https://code.angularjs.org/tools/system.js"></script> 
    <script src="https://code.angularjs.org/tools/typescript.js"></script> 
    <script src="https://code.angularjs.org/2.0.0-beta.6/Rx.js"></script> 
    <script src="https://code.angularjs.org/2.0.0-beta.6/angular2.dev.js"></script> 
    <script> 
     System.config({ 
     transpiler: 'typescript', 
     typescriptOptions: { emitDecoratorMetadata: true }, 
     packages: {'app': {defaultExtension: 'ts'}}, 
     map: { 'app': './app' } 
     }); 
     System.import('app/service_main') 
      .then(null, console.error.bind(console)); 
    </script> 
    </head> 
<body> 
    <my-app>Loading...</my-app> 
</body> 
</html> 

そして、はい、私のコードは、アプリケーション/及びませんSRC /アプリ

+1

おそらくばかげた質問ですが、あなたのアプリケーションモジュールに 'HttpModule'をインポートしましたか? :) – Alex

答えて

3
であります

あなたのインポに矛盾がありますrts。

import {Injectable} from "angular2/core"; 

(あなたがindex.htmlhttps://code.angularjs.org/2.0.0-beta.6/angular2.dev.jsをインポートしているので)あなたがからHttpをインポートすることを確認してくださいangular2のベータ版を使用している場合は

import { Http } from '@angular/http'; 

はRC +

であるのに対し、ベータ版のインポートです正しいパッケージ(angular2/http)。

しかし、あなたのアプリを最新バージョンにアップグレードし、公式サイトの最新のガイドに従うことをお勧めします。

の変更: "angular2 /コア" からhttps://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02

1

インポート{注射}; //ベータバージョン

"@角度/コア" からこの

インポート{注射を}使用insted;//最終版