我甚至不使用FooService,但Angular 2想抱怨。
export class DisplayFooComponent implements OnInit {
private foo: Foo;
constructor() {}
ngOnInit() {
// this.getFoo();
this.foo.name = "Bar Test";
}
// getFoo() : void {
// this.fooService.getFoo()
// .then(foo => this.foo = foo);
// }
}
我追了几个小时。引用该服务的所有内容都已消失,但它仍然抱怨它没有定义,也不会在页面上显示任何内容(因为Angular 2出错了)
但是,如果我这样做:
export class DisplayFooComponent implements OnInit {
private foo: Foo;
constructor(private fooService:FooService) {}
ngOnInit() {
this.getFoo();
//this.foo.name = "Bar Test";
}
getFoo() : void {
this.fooService.getFoo()
.then(foo => this.foo = foo);
}
}
我仍然收到服务未定义的错误,但它使用我的服务,进行http调用并仍然获取Foo。
我想我在这里错过了一些非常简单的东西。非常感谢任何帮助。
答案 0 :(得分:1)
您在提供商中插入FooService:[]?
为例:
@Component({
providers: [FooService],
templateUrl: './youTemplate.html'
})
您还必须导入文件:
import {FooService} from 'youPath/fooService';
您还应该在模块中导入:
import {FooService} from 'youPath/fooService';
@NgModule({
imports: [ .... ],
declarations: [ .... ],
providers:[ FooService ]
})
答案 1 :(得分:0)
从angular-cli 1.0.0-beta.20.5升级到1.0.0-beta.21似乎已经修复了它。现在表现得像预期的那样。