2016-11-16 2 views
1

я использую это для запросов отдыха (или пытается): https://github.com/2muchcoffeecom/ng2-restangular/Использование angular2, машинопись и restangular2, ни поставщик для ошибки HTTP

Я использую этот YEOMAN генератор:

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

из проекта, созданного в ящике, выглядит нормально,

i Затем следуйте инструкциям в 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 репозиторий, но это выглядело как я должен был, не уверен, если это правильно, хотя.

любая помощь будет очень признательна.

EDIT:

ИТАК в 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

Смежные вопросы