Angular2:内联模板:8:0引起:没有字符串

时间:2017-03-09 20:15:12

标签: angular

我在Angular2中编写了以下代码:

添加-item.component.ts

@Component({
  selector: 'add-item',
  template: `<form-item [title]="abcde"></form-item>`,
})

export class AddItemComponent {
  forms: Object[]

  constructor() {
    this.forms = [{title: 'a', link: 'b'}];
  }
}

形状item.component.ts

@Component({
  selector: 'form-item',
  template: `<h3>{{title}}</h3>`,
  inputs: ['title'],
  styles: [`
    h3 { 
        color: blue;      
    }
  `]
})

export class FormItemComponent{

  @Input()
  title: string;

  constructor(title: string) {
    this.title = title;
  }
}

当我运行此代码时出现错误:

  

错误:./AddItemComponent类AddItemComponent中的错误 - 内联   模板:8:0引起:没有String的提供者!

我做了一个小研究,我不明白是什么问题。我也看了一下: Angular2 EXCEPTION No provider for String

你能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

您需要从构造函数中删除title: string和初始化。 Angular的构造函数期望提供者作为参数。

答案 1 :(得分:1)

FormItemComponent类应该是:

export class FormItemComponent{
  @Input() title: string = "";
}

&#39;标题&#39;不得在构造函数内初始化。