没有提供者!在复选框输入

时间:2017-09-25 09:38:41

标签: angular

在我的应用程序中,我有一个显示和不显示选项的复选框,基于加载组件的选择。默认情况下,将选中复选框(组件不会显示),并且将显示基于服务值组件以及更新复选框选择。它在本地(开发模式)中按预期工作,但仅在服务器上生成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后才会出错。

2 个答案:

答案 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文件中使用它...请检查是否有任何