2015-07-20 184 views
1

我仍然在掙扎2.我試圖使用http模塊,但我得到未解決的依賴關係。我使用阿爾法31.這是我的組件的源代碼:appInjector在組件不能正常工作

/// <reference path="../typings/angular2/angular2.d.ts" /> 

import {Component, View} from 'angular2/angular2'; 
import {Http, httpInjectables} from 'angular2/angular2'; 

// Annotation section 
@Component({ 
    selector: 'test', 
    appInjector: [httpInjectables] 
}) 
@View({ 
    templateUrl: 'EcoApp/Views/test.html' 
}) 
// Component controller 
export class Test2Component { 
    name: string; 

    constructor(http: Http) { 
     this.name = http.toString(); 
    } 
} 

這是我得到的第一個錯誤(還有其他跟隨它,這裏沒有列出):

No provider for function (_backend, _defaultOptions) { 
     this._backend = _backend; 
     this._defaultOptions = _defaultOptions; 
     }! (Test2Component -> function (_backend, _defaultOptions) { 
     this._backend = _backend; 
     this._defaultOptions = _defaultOptions; 
     }) 
STACKTRACE: 
Error: null 
    at NoBindingError.BaseException (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:7713:25) 
    at NoBindingError.AbstractBindingError (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:9595:66) 
    at new NoBindingError (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:9613:60) 
    at Injector._getByKey (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:27021:21) 
    at Injector._getByDependency (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26979:27) 
    at Injector._new (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26877:68) 
    at InjectorInlineStrategy.hydrate (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26618:31) 
    at ElementInjector._reattachInjector (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:28293:39) 
    at ElementInjector._hydrateInjector (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:28279:20) 
    at ElementInjector.hydrate (https://code.angularjs.org/2.0.0-alpha.31/angular2.dev.js:28263:18) 
    BrowserDomAdapter.logError @ angular2.dev.js:20567 
    ExceptionHandler.call @ angular2.dev.js:13852 
    _errorHandler @ angular2.dev.js:14140 
    NgZone._onError @ angular2.dev.js:14079 
    errorHandling.onError @ angular2.dev.js:14022 
    run @ angular2.dev.js:136 
    (anonymous function) @ angular2.dev.js:14036 
    zoneBoundFn @ angular2.dev.js:106 
    lib$es6$promise$$internal$$tryCatch @ angular2.dev.js:1356 
    lib$es6$promise$$internal$$invokeCallback @ angular2.dev.js:1368 
    lib$es6$promise$$internal$$publish @ angular2.dev.js:1339 
    (anonymous function) @ angular2.dev.js:184 
    microtask @ angular2.dev.js:14061 
    run @ angular2.dev.js:133 
    (anonymous function) @ angular2.dev.js:14036 
    zoneBoundFn @ angular2.dev.js:106 
    lib$es6$promise$asap$$flush @ angular2.dev.js:1150 

回答

3

好的,我必須回答我自己的問題,我根據@jhadesdev的回答鏈接發現了這個問題。看起來,appInjector已被重命名爲viewInjector,當我使用後者它工作得很好。

下面是對這個問題的鏈接,並透露出後

https://github.com/angular/angular/issues/2788#issuecomment-117968971

謝謝大家

+0

這是一個工作的HTTP例子的情況下,這是有幫助的:http://www.syntaxsuccess.com/viewarticle /angular-2.0-and-http – TGH