我想自定义我的应用程序视图,由服务中的事件触发.
我的一项服务注入了ChangeDetectorRef.编译工作正常,但当应用程序启动时,浏览器中出现了一个错误:No provider for ChangeDetectorRef!
.
我想我需要将它添加到我的AppModule中,但我找不到任何文档表明它位于我可以导入的模块中.我试图将类本身添加到导入数组中,但这导致了一个错误.我在try 将其添加到模块中的providers数组时也遇到了一个错误.以下是我的服务的简化版本:
import {Injectable, ChangeDetectorRef } from '@angular/core';
@Injectable()
export class MyService {
private count: number = 0;
constructor(private ref: ChangeDetectorRef){}
increment() {
this.count++;
this.ref.detectChanges();
}
以及应用程序模块:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MyService } from './my.service';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
providers: [ MyService ],
booststrap: [ AppComponent ]
})
export AppModule {}
UPDATE
之后,我try 删除对ChangeDetectorRef的使用,但仍然存在同样的问题.我猜我更新系统JS配置的方式有问题罢工>
我最初用angular cli创建了这个应用程序,并试图自己更新angular,因为他们没有更新.随着Angular 2.0.0的最终发布,他们更新了Angular cli,以使用Angular的最新版本.所以我将try 使用他们的升级程序,希望情况会更好.
Update 2
网页包/客户端更新进展顺利.我现在有了Angular 2.0.0英寸和Angular cli 1.0.0-beta14的应用程序构建.我在浏览器中仍然会遇到同样的错误.我试着从服务中删除ChangeDetectorRef,但我真的没有.我分两次使用.如果我从这两个服务中删除它,那么我的应用程序加载良好,运行良好,但我try 使用ChangeDetectorRef的地方除外.一旦我将其添加回其中一个文件中,浏览器就会抱怨无法为其找到Provider .
我试着把它放进我的module,但它不是module,所以运输员抱怨道.我试着在我的模块中将其列为a provider,但它没有提供属性,因此transpiler抱怨.如果我试着把它放到declarations数组中,也会遇到类似的问题.