角度中不存在Error属性

时间:2018-05-04 12:14:26

标签: angular typescript properties undefined

我在组件类的开头初始化了一个数字类型,如下所示: 我的组件类:



import { .....


@Component({
   ....
})
export class JhiLoginModalComponent implements  OnInit {
   
    a: number;
 

   
    ngOnInit() {
      this.method();

    }
    method() {
     a=3;
    }




我的测试课程:



import {...

  describe('LoginComponent', () => {
  
    let comp: ComponentClass;
        let fixture: ComponentFixture<ComponentClass>;
          beforeEach(async(() => {
            TestBed.configureTestingModule({
              ............
        }));
        
          beforeEach(() => {
            fixture = TestBed.createComponent(ComponnetClass);
            comp = fixture.componentInstance;
            ....
              });
              //MY TEST
                it ('Should print a value', async(() => {
fixture.detectChanges();
            console.log('lalalalla' + comp.method.a); //It prints lalalaundefined
            
        }));
&#13;
&#13;
&#13;

当我打印domElement并返回错误时返回undefined:属性 a 未定义任何类型

注射时是否出错?如何以其他方式访问组件元素?如果我稍后使用这个数字,它会说它未定义。

1 个答案:

答案 0 :(得分:1)

创建组件时不会调用

ngOnInit。当组件准备好使用时(设置输入,包括数据绑定属性),它是Angular引擎调用它。添加console.logngOnInit您将看到在测试console.log之前尚未调用它。您需要先致电fixture.detectChanges()

已编辑(根据您的评论):

我刚刚意识到。您正在记录comp.method.a,但comp.method是一个函数,因此它没有a属性。您应该记录comp.a

console.log('lalala' + comp.a);