appInjector在组件不工作 [英] appInjector in component not working

查看:165
本文介绍了appInjector在组件不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

仍然角2挣扎我试图使用 HTTP 模块,但我得到未解决的依赖。我使用alpha 31.这是我的组件的源代码:

  ///<参考路径=../分型/ angular2 / angular2.d.ts/>进口{组件,查看}从'angular2 / angular2';
从angular2 / angular2进口{HTTP,httpInjectables};//注释部分
@零件({
    选择:测试,
    appInjector:[httpInjectables]
})
@视图({
    templateUrl:EcoApp /查看/ test.html的
})
//组件控制器
出口类Test2Component {
    名称:字符串;    构造函数(HTTP:HTTP){
        this.name = http.toString();
    }
}

这是我得到的第一个错误(还有其他跟随它,这里没有列出):

 无提供商功能(_backend,_defaultOptions){
        this._backend = _backend;
        this._defaultOptions = _defaultOptions;
      }! (Test2Component - >功能(_backend,_defaultOptions){
        this._backend = _backend;
        this._defaultOptions = _defaultOptions;
      })
堆栈跟踪:
错误:空
    在NoBindingError.BaseException(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:7713:25)
    在NoBindingError.AbstractBindingError(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:9595:66)
    在新NoBindingError(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:9613:60)
    在Injector._getByKey(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:27021:21)
    在Injector._getByDependency(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26979:27)
    在Injector._new(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26877:68)
    在InjectorInlineStrategy.hydrate(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:26618:31)
    在ElementInjector._reattachInjector(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:28293:39)
    在ElementInjector._hydrateInjector(HTTPS://$c$c.angularjs.org/2.0.0-alpha.31/angular2.dev.js:28279:20)
    在ElementInjector.hydrate(HTTPS://$c$c.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
    运行@ angular2.dev.js:136
    (匿名函数)@ angular2.dev.js:14036
    zoneBoundFn @ angular2.dev.js:106
    LIB $ ES6 $承诺$$内部$$ tryCatch @ angular2.dev.js:1356
    LIB $ ES6 $承诺$$内部$$ invokeCallback @ angular2.dev.js:1368
    LIB $ ES6 $承诺$$内部$$发布@ angular2.dev.js:1339
    (匿名函数)@ angular2.dev.js:184
    microtask @ angular2.dev.js:14061
    运行@ angular2.dev.js:133
    (匿名函数)@ angular2.dev.js:14036
    zoneBoundFn @ angular2.dev.js:106
    LIB $ ES6 $承诺尽快$ $$冲洗@ angular2.dev.js:1150


解决方案

好吧,我得回答我的问题通过基于从@jhadesdev答案的链接,我发现的。看来, appInjector 已更名为 viewInjector ,当我用后者,它的工作就好了。

下面就这个问题和暴露后

链接

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

谢谢大家。

still struggling with angular 2. I am trying to use the http module but I am getting unresolved dependencies. I am using alpha 31. Here is the source of my component:

/// <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();
    }
}

And this is the first error I'm getting (there are others following it, not listed here):

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

解决方案

Ok I have to answer my own question which I discovered based on the link from the answer by @jhadesdev. It appears that appInjector has been renamed to viewInjector, when I used the latter it worked just fine.

Here's a link to the issue and the revealing post

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

Thanks everyone

这篇关于appInjector在组件不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆