2016-07-28 130 views
0

你好我的同胞堆栈,componentHandler没有定义

我目前正在一个项目。我现在有点卡住了。我试图让一个对话框工作,但迄今不太好。我在最后阶段,我必须定义我的componentHandler工作。但是我收到错误信息“EXCEPTION:ReferenceError:componentHandler is not defined”。

这是我在我的AppComponent中定义componentHandler的代码。

import { Component, OnInit, ViewContainerRef, Input } from '@angular/core'; 

import '../styles/global.css'; 

import { ROUTER_DIRECTIVES } from "@angular/router"; 
import { MODAL_DIRECTVES, BS_VIEW_PROVIDERS, CollapseDirective } from '../../node_modules/ng2-bootstrap/ng2-bootstrap'; 

import { LoginService } from "./services/login.service"; 
import { MenuService } from "./services/menu.service"; 
import { Menu } from './models/menu'; 
import { MenuGroup } from './models/menu-group'; 
import { MenuGroupedArea } from './models/menu-grouped-area'; 
import { MenuItem } from './models/menu-item'; 

import {ConfirmService} from "./components/confirm/confirm.service"; 
import {ConfirmComponent} from "./components/confirm/confirm.component"; 
    declare var componentHandler: any; 

    @Component({ 
     selector: 'app-container', 
     template: require('./app.component.html'), 
     styles: [require('./app.component.css')], 
     viewProviders: [BS_VIEW_PROVIDERS], 
     directives: [MODAL_DIRECTVES, ROUTER_DIRECTIVES, CollapseDirective, ConfirmComponent], 
     providers: [ 
     LoginService, MenuService, ConfirmService] 
    }) 

    export class AppComponent implements OnInit { 

     public isCollapsed: boolean; 

     public viewContainerRef: ViewContainerRef; 

     public menu: Menu; 

     constructor(viewContainerRef: ViewContainerRef, private _confirmService: ConfirmService) { 
     this.viewContainerRef = viewContainerRef; 
     this.menu = new Menu(); 

     var area = new MenuGroupedArea(); 
     area.identifier = "Navigation"; 
     var group = new MenuGroup(); 
     group.identifier = "Group"; 
     var item = new MenuItem(); 
     item.identifier = "Item"; 
     group.items.push(item); 
     area.groups.push(group); 
     this.menu.areas.push(area); 

     } 

     title = "Notifier!!!" 

     showConfirmDialog() { 
     this._confirmService.activate("Are you sure?") 
      .then(res => console.log(`Confirmed: ${res}`)); 
     } 

     ngOnInit(): any { 
      componentHandler.upgradeDom(); 
     } 

    } 

欢迎任何形式的答案或问题!

+0

你有什么期望。你只声明componentHandler,但你永远不会定义它,所以componentHandler是未定义的。 – Christoph

+0

即使当我“componentHandler.upgradeDom =新的componentHandler();”它仍然没有定义,或者我在这里做错了什么? –

+0

这里的问题是'componentHandler'已经不确定,所以如果你尝试设置未定义的'upgradeDom'字段就会出错。所以'componentHandler.upgradeDom = new componentHandler();'不工作,但'componentHandler = {upgradeDom = new componentHandler()};'会工作。 – Christoph

回答