2017-08-17 33 views
0

我正在处理一些角度为4的应用程序,我想在@ng-bootstrap/ng-bootstrap中导入一些模块。问题是,即使我有一个自定义模块已成功导入模块,我的另一个模块无法导入它,并给出了这样的警告: WARNING in ./src/app/main/layout/fail/fail/fail.component.ts 151:83-96 "export 'NgbTimeStruct' was not found in '@ng-bootstrap/ng-bootstrap' 我非常确定,它正确安装,因为我说我有另一个模块,可以导入它没有问题,但我错过了什么?我已经包含了module.tscomponent.ts文件中所需的模块和组件!Angular 4 - 编译器找不到一个组件中的节点模块模块,但有另一个模块可以成功导入它

这些是我需要解决的问题: CalendarEvent from angular-calendar; NgbDateStructNgbTimeStruct@ngx-translate/core

这里是我的代码:

模块成功导入了模块:

success.module.ts:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { SuccessComponent } from './success.component'; 
import { SuccessRoutingModule } from './successrouting.module'; 
import { FormsModule } from '@angular/forms'; 
import { CalendarModule } from 'angular-calendar'; 
import { UtilsModule } from '../util/module'; 
import { FailModule } from '../../fail/fail/fail.module'; 
//import { FailComponent } from '../../event/eventmodify/eventmodify.component'; // I am trying to use the failed module in this module 
import { NgbModalModule, NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap'; 
import { ElementsModule } from '../../../../shared/components/elements/elements.module'; 
import { TranslateModule } from '@ngx-translate/core'; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    SuccessDemoRoutingModule, 
    FormsModule, 
    NgbModalModule.forRoot(), 
    NgbDatepickerModule.forRoot(), 
    NgbTimepickerModule.forRoot(), 
    CalendarModule.forRoot(), 
    UtilsModule, 
    FailModule, 
    ElementsModule, 
    TranslateModule 
    ], 
    declarations: [SuccessDemoComponent], 
    exports: [SuccessDemoComponent] 
}) 
export class SuccessModule { } 

success.component.ts:

import { Component, AfterViewInit, ChangeDetectionStrategy, ViewChild, 
TemplateRef, ElementRef } from '@angular/core'; 
import { Router } from '@angular/router'; 
import { Location } from '@angular/common'; 
import { TranslateService } from '@ngx-translate/core'; 
import { jqxDataTableComponent } from 'jqwidgets-framework/jqwidgets-ts/angular_jqxdatatable'; 
import { EventModifyComponent } from '../../event/eventmodify/eventmodify.component'; 
import { EventValue } from '../../../service/event/structure/event.value'; 
import { EventService } from '../../../service/event/event.service.promise'; 
import { ValidateUtil } from '../../../../shared/validate/validate.util'; 
import { GeneralService } from 
'../../../service/general/general.service.promise'; 
import { GeneralValue } from '../../../service/general/structure/general.value'; 
import { ResponseValue } from '../../../service/event/structure/response.value'; 
import * as myGlobal from '../../../../shared/global/global'; 
import { WindowComponent } from '../../../../shared/components/elements/window/window.component'; 

import { startOfDay, endOfDay, subDays, addDays, endOfMonth, isSameDay, isSameMonth, addHours, getMinutes, getHours, getDate, getMonth, getYear, setSeconds, setMinutes, setHours, setDate, setMonth, setYear } from 'date-fns'; 
import { Subject } from 'rxjs/Subject'; 
import { NgbModal, NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap'; 
import { CalendarEvent, CalendarEventAction, CalendarEventTimesChangedEvent} from 'angular-calendar'; 

import 'angular-calendar/dist/css/angular-calendar.css'; 

... //out of the failed ones I need only NgbModal is included in the constructor 

模块无法导入该模块:

fail.module.ts:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { FailComponent } from './fail.component'; 
import { FormsModule } from '@angular/forms'; 
import { CalendarModule } from 'angular-calendar'; 
import { SuccessModule } from '../../success/success/success.module'; 
import { UtilsModule } from '../../success/util/module'; 
import { NgbModalModule, NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap'; 
import { ElementsModule } from '../../../../shared/components/elements/elements.module'; 
import { TranslateModule } from '@ngx-translate/core'; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    FormsModule, 
    CalendarModule.forRoot(), 
    NgbModalModule.forRoot(), 
    NgbDatepickerModule.forRoot(), 
    NgbTimepickerModule.forRoot(), 
    UtilsModule, 
    ElementsModule, 
    TranslateModule 
    ], 
    declarations: [FailComponent], 
    exports: [FailComponent] 
}) 
export class FailModule { } 

fail.component.ts:

import { Component, AfterViewInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, TemplateRef, ElementRef } from '@angular/core'; 
import { Router } from '@angular/router'; 
import { Location } from '@angular/common'; 
import { TranslateService } from '@ngx-translate/core'; 
import { jqxDataTableComponent } from 'jqwidgets-framework/jqwidgets-ts/angular_jqxdatatable'; 
import { EventValue } from '../../../service/event/structure/event.value'; 
import { EventService } from '../../../service/event/event.service.promise'; 
import { ValidateUtil } from '../../../../shared/validate/validate.util'; 
import { GeneralService } from '../../../service/general/general.service.promise'; 
import { GeneralValue } from '../../../service/general/structure/general.value'; 
import { ResponseValue } from '../../../service/event/structure/response.value'; 
import * as myGlobal from '../../../../shared/global/global'; 
import { WindowComponent } from '../../../../shared/components/elements/window/window.component'; 

import { startOfDay, endOfDay, subDays, addDays, endOfMonth, isSameDay, isSameMonth, addHours, getMinutes, getHours, getDate, getMonth, getYear, setSeconds, setMinutes, setHours, setDate, setMonth, setYear } from 'date-fns'; 
import { Subject } from 'rxjs/Subject'; 
import { NgbModal, NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap'; 
import { CalendarEvent, CalendarEventAction, CalendarEventTimesChangedEvent} from 'angular-calendar'; 

... // Only NgbModal included as well 

就如何使工作的事情你知道吗?谢谢你的建议。

回答

0

事实证明,我双导入模块和Angular不喜欢它。我从失败模块中删除了成功模块的导入,然后工作得很好。我想如果有人真的需要这两个自定义模块来相互依赖,最好不要通过导入两个模块来导入一些模块,如NgbModalModule两次。

而且我听说有人做共享模块的最好方法是将它们导入共享模块。

相关问题