组件Html页面在Angular 2中闪现

时间:2017-11-30 02:22:01

标签: angular typescript angular2-routing mean-stack

我有几个组件,包括同位素组件。 此组件受到保护,除非用户已登录,否则不应访问该组件。但如果我键入任何路径,如

http://localhost:4200/register

然后我输入

http://localhost:4200/isotopes 不应该显示同位素页面,而是闪烁没有任何数据的html,只有组件的模板并立即重定向到登录。 我不想在重定向发生时显示任何内容。 以下是同位素组分的一些代码。 我不知道要显示什么代码,因为我不知道问题在哪里

export class IsotopesComponent implements OnInit {
theisotopes: IsotopesComponent[];
selectedIsotope: IsotopesComponent;

  constructor( private isotopesService: IsotopesService,
               private authService: AuthService,
               private routetheuser: Router) { }

  ngOnInit() {
    this.getIsotopes();
  }
  getIsotopes() { this.isotopesService.getIsotopes()
                .then((isotopes ) => {
                   this.theisotopes = isotopes;
                   //console.log(this.theisotopes)
                })
                .catch((err) => {
                  this.routetheuser.navigate(['/login']);
                  });
  }// getIsotopes
}// class

1 个答案:

答案 0 :(得分:0)

模板闪烁的原因(在我看来)该路线需要一名警卫。一旦我开始使用canActivate作为该路由,它首先检查用户是否经过身份验证,并且可以激活或使用该路由。如果为false,则永远不会呈现组件。