仅初始加载时Angular App错误

时间:2018-07-10 00:10:45

标签: angular stackblitz

我正在StackBlitz上编写样板Angular应用程序,但在初始加载时遇到错误,但是当我在编辑器中进行任何更改时,该应用程序都可以正常加载。

  

错误   /turbo_modules/@angular/compiler@6.0.7/bundles/compiler.umd.js   (301:17)无法解析MainComponent的所有参数:(?)。   评估main.ts引导应用程序

该应用为HERE。似乎正在抛出的主要组件看起来像这样,我看不到任何遗漏的参数(我认为这不仅仅值得略读,只是粘贴以供参考):

import { Component } from '@angular/core'
import { Router } from '@angular/router';

@Component({
  selector: 'main-component',
  template: `
    <ul>

      <li>
        <a [ngClass] = "{ active: (activeLink === 'Home') }" 
           (click) = "goHome()">
          HOME
        </a>
      </li>

      <li>
        <a [ngClass] = "{ active: (activeLink === 'News') }"
           (click) = "goToNews()">
          NEWS
        </a>
      </li>

    </ul>
    <br>
    <router-outlet></router-outlet>
  `,
  styleUrls:  ['main.component.css']
})

export class MainComponent{

  constructor(private router: Router) {}

  public activeLink = 'Home'; //default

  public goToNews() {
    this.activeLink = 'News';
    this.router.navigate(['/news']);
  }

  public goHome() {
    this.activeLink = 'Home'; 
    this.router.navigate(['/home']);
  }

}

是什么原因导致错误,我该如何解决?

编辑:似乎更改主要组件代码(如添加空格,任何内容)会导致应用暂时“修复自身”-可能是StackBlitz问题。

2 个答案:

答案 0 :(得分:1)

在app-routing.module.ts中已经提到了路由映射,因此不需要在MainComponent的构造函数中注入Router,应该将其删除。您可以找到工作示例:https://stackblitz.com/edit/angular-route-resolves-start-fpuzaq

答案 1 :(得分:0)

看起来我所做的并不是严格错误-角度应用程序没有在StackBlitz上正确清除自身,为此,它需要NSUInteger capacity = data.length * 2; NSMutableString *sbuf = [NSMutableString stringWithCapacity:capacity]; const unsigned char *buf = data.bytes; NSInteger i; for (i=0; i<data.length; ++i) { [sbuf appendFormat:@"%02X", (NSUInteger)buf[i]]; } const char *chars = [sbuf UTF8String]; 文件中的以下代码:

main.ts