Angular4路由测试

时间:2017-07-27 12:51:54

标签: javascript angular angular-routing

我在Angular项目(v4)上工作,我想测试组件的 ngOnInit 。但是,我不知道用路由测试组件。实际上,由于URL params,我希望找到一个包含2个对象数组的标签。谢谢你的回答。

import { Component, OnInit } from '@angular/core';
import { MenuNavComponent } from '../../shared/folder/cpt.component';
import { Router } from '@angular/router';

@Component({
  selector: 'cpt-small',
  templateUrl: './cpt-small.component.html',
  styleUrls: [
    './cpt.scss'
  ]
})
export class Cpt extends ParentCpt implements OnInit {

  constructor( private router: Router ) {
    super();
  }

  ngOnInit() {
    this.router.events.subscribe(() => {
      if (!this.router.url.startsWith('/home')) {
        let routeURL = this.router.url.split('/')[1];
        routeURL = `/${routeURL}`;
        this.menu.forEach((menuCategory, index) => {
          menuCategory.items.forEach((item) => {
            if (routeURL === item.link) {
              this.onDropDownClicked(index);
            }
          });
        });
      }
    });
  }

  onDropDownClicked(index) {
    this.menu.forEach((dropDown, i) => {
      if (i !== index) {
        dropDown['open'] = false;
      } else {
        dropDown['open'] = true;
      }
    });
  }
}

0 个答案:

没有答案