Tôi muốn udpate chế độ xem ứng dụng của tôi, được kích hoạt bởi các sự kiện từ dịch vụ.Cập nhật kích hoạt chế độ xem thành phần từ dịch vụ - Không Nhà cung cấp nào cho ChangeDetectorRef
Một trong các dịch vụ của tôi tiêm ChangeDetectorRef. Biên dịch hoạt động, nhưng tôi gặp lỗi trong trình duyệt khi ứng dụng được khởi động: No provider for ChangeDetectorRef!
.
Tôi nghĩ tôi cần thêm nó vào AppModule của mình, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào cho thấy nó nằm trong một mô-đun mà tôi có thể nhập vào đó. Tôi đã thử thêm chính lớp đó vào mảng nhập, nhưng điều đó gây ra lỗi. Tôi cũng gặp lỗi khi cố gắng thêm nó vào mảng nhà cung cấp trong mô-đun. Đây là một phiên bản đơn giản của dịch vụ của tôi:
import {Injectable, ChangeDetectorRef } from '@angular/core';
@Injectable()
export class MyService {
private count: number = 0;
constructor(private ref: ChangeDetectorRef){}
increment() {
this.count++;
this.ref.detectChanges();
}
Và các module ứng dụng:
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 {}
CẬP NHẬT
Tôi có kể từ khi cố gắng xóa bỏ sử dụng của tôi ChangeDetectorRef, và tôi vẫn còn có vấn đề giống nhau. Tôi đoán có điều gì đó sai về cách tôi cập nhật cấu hình System JS của mình.
Tôi ban đầu đã tạo ứng dụng với angular-cli và đang cố gắng cập nhật Angular một mình vì chúng chưa cập nhật điều đó. Với bản phát hành cuối cùng của Angular 2.0.0, họ đã cập nhật angular-cli để sử dụng phiên bản mới nhất của góc. Vì vậy, tôi sẽ cố gắng sử dụng các thủ tục nâng cấp của họ và hy vọng rằng sẽ tốt hơn.
Cập nhật 2
Các webpack/cập nhật góc-cli diễn ra tốt đẹp. Tôi có ứng dụng xây dựng ngay bây giờ với Angular 2.0.0 và angular-cli 1.0.0-beta14. Tôi vẫn gặp lỗi tương tự trong trình duyệt. Tôi đã thử xóa ChangeDetectorRef khỏi dịch vụ, nhưng tôi đã không thực sự. Tôi đã có nó trong hai dịch vụ. Nếu tôi xóa nó khỏi cả hai dịch vụ thì ứng dụng của tôi sẽ tải tốt và hoạt động tốt, ngoại trừ nơi tôi đang cố gắng sử dụng ChangeDetectorRef. Khi tôi thêm lại vào một trong các tệp, trình duyệt đã phàn nàn về việc không thể tìm nhà cung cấp cho nó.
tôi đã cố gắng nhập khẩu nó trong mô-đun của tôi, nhưng nó không phải là một mô-đun , vì vậy transpiler phàn nàn. Tôi đã thử liệt kê một nhà cung cấp trong mô-đun của tôi, nhưng nó không có thuộc tính cung cấp, do đó trình thu thập thông tin phàn nàn. vấn đề tương tự nếu tôi thử đặt nó trong các tờ khai .
Thử thêm ChangeDetectorRef vào mảng giải mã –
Bạn có thể đưa nó vào thành phần không? –
Tôi có thể tưởng tượng rằng bạn không thể tiêm nó vào một dịch vụ? Bạn có thể thử tiêm nó vào một thành phần và vượt qua nó cho dịch vụ? –