我正在尝试定义一个名为NavItem
的TypeScript类,我想要保存标题和网址。我发现如果我定义这个类并使用对象表示法{title: "foo", url: "bar"}
实例化它,它可以很好地工作,但是只要我添加一个构造函数(即使我没有立即使用它)它就会完全中断:
import {Component, Input} from 'angular2/core'
@Component({
selector: 'nav-item',
templateUrl: './views/navitem.html',
})
export class NavItem {
@Input() title: String = "default title";
@Input() url: String;
// if I comment the following out it works fine:
constructor(inTitle: String, inUrl: String) {
this.title = inTitle;
this.url = inUrl;
}
}
如果我把构造函数放入,我会在页面中看到它:
EXCEPTION:没有String的提供者! ([名称:TopNav @ 2:11]中的navItems中的(NavItem - > String)
答案 0 :(得分:3)
如果我把构造函数放入,我会在页面中看到它:
这是因为 angular 应该实例化控制器给你。你没有new FooController
,有角度。因此,任何构造函数参数都必须具有使用angular注册的相应提供程序。
答案 1 :(得分:2)
构造函数用于带组件的DI。如果您想传递title和url的值,您可以执行以下操作。
<nav-item [title]="Sometitle" [url]="http://someurl.com">
Angular将为您提供支持