2016-11-16 38 views
1

我用這休息的請求(或嘗試):https://github.com/2muchcoffeecom/ng2-restangular/使用angular2,打字稿及restangular2,無提供HTTP錯誤

我用這自耕農發生器:

https://www.npmjs.com/package/generator-angular2-typescript

的出框生成的項目看起來不錯,

然後我按照ng2-resangular中的說明,但運行此時我得到以下錯誤:

core.umd.js?e2a5:2840 Error: No provider for Http! 
    at NoProviderError.Error (native) 
    at NoProviderError.BaseError [as constructor] (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:1104:38) 
    at NoProviderError.AbstractProviderError [as constructor] (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:1235:20) 
    at new NoProviderError (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:1266:20) 
    at ReflectiveInjector_._throwOrNull (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:2736:23) 
    at ReflectiveInjector_._getByKeyDefault (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:2764:29) 
    at ReflectiveInjector_._getByKey (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:2727:29) 
    at ReflectiveInjector_.get (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:2536:25) 
    at NgModuleInjector.get (/AppModule/module.ngfactory.js:160:113) 
    at NgModuleInjector.get (/AppModule/module.ngfactory.js:165:135) 
    at NgModuleInjector.AppModuleInjector.getInternal (/AppModule/module.ngfactory.js:306:51) 
    at NgModuleInjector.get (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:6717:31) 
    at DebugAppView.AppView.injectorGet (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:9150:49) 
    at DebugAppView.injectorGet (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:9389:53) 
    at DebugAppView.View_AppComponent_Host0.createInternal (/AppModule/AppComponent/host.ngfactory.js:15:63) 
    at DebugAppView.AppView.createHostView (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:9122:25) 
    at DebugAppView.createHostView (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:9379:56) 
    at ComponentFactory.create (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:5478:29) 
    at ApplicationRef_.bootstrap (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:6547:44) 
    at eval (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:6456:93) 
    at Array.forEach (native) 
    at PlatformRef_._moduleDoBootstrap (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:6456:46) 
    at eval (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:6424:31) 
    at ZoneDelegate.invoke (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:232:26) 
    at Object.onInvoke (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:5972:41) 
    at ZoneDelegate.invoke (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:231:32) 
    at Zone.run (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:114:43) 
    at eval (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:502:57) 
    at ZoneDelegate.invokeTask (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:265:35) 
    at Object.onInvokeTask (eval at <anonymous> (http://localhost:3000/vendor.js:100:2), <anonymous>:5963:41) 
    at ZoneDelegate.invokeTask (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:264:40) 
    at Zone.runTask (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:154:47) 
    at drainMicroTaskQueue (eval at <anonymous> (http://localhost:3000/polyfills.js:2178:2), <anonymous>:401:35) 

app.modules.ts

import {NgModule} from '@angular/core'; 
import {BrowserModule} from '@angular/platform-browser'; 
import {FormsModule} from '@angular/forms'; 
import {AppComponent} from './app.component'; 
import {HttpModule, Headers, Response, ResponseOptions} from "@angular/http"; 
import { RestangularModule } from 'ng2-restangular'; 
import {routing, appRoutingProviders} from './app.routing'; 
import {HomeComponent} from './home/home.component'; 
import {AboutComponent} from './about/about.component'; 


@NgModule({ 
    declarations: [ 
     AppComponent, 
     HomeComponent, 
     AboutComponent 
    ], 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     HttpModule, 
     routing, 
     // Importing RestangularModule and making default configs for restanglar 
     RestangularModule.forRoot((RestangularProvider: any) => { 
       RestangularProvider.setBaseUrl('http://api.test.local/v1'); 
       RestangularProvider.setDefaultHeaders({'Authorization': 'Bearer UDXPx-Xko0w4BRKajozCVy20X11MRZs1'}); 
      } 
     ), 
    ], 
    providers: [appRoutingProviders, HttpModule], 
    bootstrap: [AppComponent] 
}) 

export class AppModule { 
} 

app.components.js

mport {Component, OnInit} from '@angular/core'; 

import 'bootstrap/dist/css/bootstrap.css'; 
import '../css/main.css'; 
import {Restangular} from "ng2-restangular"; 

@Component({ 
    selector: 'my-app', 
    template: require('./app.component.html') 
}) 

export class AppComponent implements OnInit { 
    constructor(private restangular: Restangular) { 
    } 

    ngOnInit() { 
     // GET http://api.test.local/v1/users/2/accounts 
     this.restangular.one('users', 2).all("accounts").getList(); 
    } 
} 

我必須承認我有點失去了與這個錯誤,所以我嘗試添加在應用中的以下。模塊:

import {HttpModule, Headers, Response, ResponseOptions} from "@angular/http"; 

,但似乎並沒有做任何事情

最後我加入到這個vendor.ts

import '@angular/platform-browser'; 
import '@angular/platform-browser-dynamic'; 
import '@angular/core'; 
import '@angular/common'; 
import '@angular/forms'; 
import '@angular/http'; 
import '@angular/router'; 

import 'rxjs'; 

import 'bootstrap/dist/js/bootstrap'; 
import 'ng2-restangular/dist/umd/ng2-restangular' 

的最後一行是不是從閱讀NG2-restangular git的回購協議增加一個要求,但它看起來像我需要,不知道這是否正確不過。

任何幫助將非常感激。

編輯:

好了,所以在app.components.js有問題的代碼是構造函數,如果我從app.component它工作正常刪除代碼,導致我相信RestAngular庫加載到我的應用程序但出於某種原因嘗試使用它會導致顯示的錯誤。

+0

此處同樣的錯誤。 –

回答

0

正是在NG2-restangular錯誤!它已更新至版本0.1.9,現在應該可以工作。有關repository的更多信息。

我需要刪除整個「node_modules」文件夾,並重新安裝使用:

npm install 

現在每一件事情的作品。

0

的的HttpModules不應該提供一個存儲中,也不應該將appRoutingProviders在那裏

providers: [appRoutingProviders, HttpModule]

providers: []

+0

appRoutingProviders在那裏作爲原始生成器的一部分。 – user1383163

+0

刪除這兩個修復您的問題? –

+0

不刪除它對錯誤沒有影響,錯誤保持不變。 – user1383163