Angular2 - OnInit未定义

时间:2016-05-16 15:07:43

标签: typescript angular

我试图实现angular 2 onInit函数但是在控制台中出现以下错误:

  

错误:ReferenceError:未定义OnInit(...)

有人可以指出我做错了吗?

这是我的组成部分:

import { Component, OnInit } from 'angular2/core';
import { ViewEncapsulation } from 'angular2/core';

@Component({
    selector: 'Landing',
    templateUrl: '/app/views/landing.html',
    styleUrls: ['../app/styles/landing.css'],
    encapsulation: ViewEncapsulation.None
})

export class LandingComponent implements OnInit {

    function checkOverflow() {
        var element = document.querySelector('.appContainer');
        if( (element.offsetHeight < element.scrollHeight) || (element.offsetWidth < element.scrollWidth)){
           // your element have overflow
          console.log('OVERFLOW!');
        }
        else{
          console.log('NO OVERFLOW');
        }
    }

    OnInit() {
        checkOverflow();
    }

}

1 个答案:

答案 0 :(得分:16)

使用single导入而不是两个import语句。如果您使用@(候选版本)版本,请在@angular/core之前使用rc

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

您应该在组件类ngOnInit

时实现implements OnInit方法
ngOnInit() {
    this.checkOverflow();
}

另外,请勿在打字稿文件中使用function,将其转换为checkOverflow(){ ... }格式&amp;然后将其称为this.checkOverflow()