在我的应用程序中,我有一个显示和不显示选项的复选框,基于加载组件的选择。默认情况下,将选中复选框(组件不会显示),并且将显示基于服务值组件以及更新复选框选择。它在本地(开发模式)中按预期工作,但仅在服务器上生成prod。
Html代码复选框:
<input type="checkbox" (click)="changedivStatus()" class="md-primary" [(ngModel)]="showReport" /> <span>DO NOT SHOW</span>
更新变量的服务代码:
this.appReportsService.getUserPreference().subscribe(preference => {
if (preference[0].appPreferenceValue == 1) {
this.loadReport = true;
console.log(this.loadReport);
} else {
this.showReport = true;
}
},
(err) => { },
() => { }
);
模块代码:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { SharedModule } from '../shared/shared.module';
@NgModule({
imports: [
BrowserModule,FormsModule ,RouterModule,SharedModule ]})
export class DashboardModule {
}
获取错误错误:没有提供商!只有在从订阅设置this.loadReport值为true后才会出错。
答案 0 :(得分:1)
我相信这是因为您没有在模块中声明provider
您的服务。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import {AppReportsService} from './path/to/your/service';
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule
],
providers: [
AppReportsService
]})
export class DashboardModule {}
答案 1 :(得分:0)
您必须在组件文件中声明任何私有变量,并在相应组件的html文件中使用它...请检查是否有任何