我遇到了问题,无论我怎么说,我都不会让我的自定义组件接受我发送的参数。
我尝试了不同的方法,例如{{}},''或没有""但最后我得到相同的错误,如果它编译到模板的点:
无法执行' setAttribute' on'元素':'()'不是有效的属性名称。
我倾向于使用最新版本,这些版本由ionic-cli捆绑(2.1.17):
基础课是 的替代-helper.ts:
export class SubstituteHelper {
number: number;
kind: string;
}
将其导入 substitute.ts:
import {Component, Input} from '@angular/core';
import {SubstituteHelper} from '../../app/substitute-helper';
@Component({
selector: 'substitute',
templateUrl: 'substitute.html'
})
export class SubstituteComponent {
@Input()
sub: SubstituteHelper;
}
然后在 application.ts :
中使用它 import {Component} from '@angular/core';
import {NavController, NavParams} from 'ionic-angular';
import {OverviewPage} from "../overview/overview";
import {SubstituteHelper} from '../../app/substitute-helper';
@Component({
selector: 'page-application',
templateUrl: 'application.html'
})
export class ApplicationPage {
showSubstituteVar: boolean = false;
subs: Array<SubstituteHelper>;
subNo: number = 0;
constructor(public navCtrl: NavController, public navParams: NavParams) {}
addSubstitute(kind: string) {
var sub = new SubstituteHelper();
sub.number = this.subNo;
sub.kind = kind;
this.subs.push(sub);
this.subNo += 1;
}
在 HTML-template 文件中,我尝试使用此功能:
<div *ngIf="subs.length>0">
<div *ngFor="let substi of subs">
<substitute [sub]="substi"></substitute>
</div>
</div>
答案 0 :(得分:1)
通过阅读代码和从那里显示的内容来猜测。我发现了两个可能的问题:
<div *ngIf="subs && subs.length>0">
(subs
当时可能是undefined
)subs: SubstituteHelper[] = []
(初始化值)答案 1 :(得分:0)
如果没有 * ngIf 和(),我会在上面添加一个标记,这就是现在解决此错误的原因。
<div *ngFor="let substi of subs">
<substitute [sub]="substi"></substitute>
</div>