我正在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问题。
答案 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