appInjector在组件不工作 [英] appInjector in component not working
问题描述
仍然角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屋!