我有问题,无论我如何提出它,我都不会让自定义组件接受我发送的参数。
我尝试了使用{{}},'''或没有"的不同方法>
无法在"元素"上执行'setAttribute':'()'不是有效的属性名称。
我倾向于使用最新的版本,这些版本由离子-CLI捆绑(2.1.17):
- 角:2.2.1
- 离子:2.0.0 -RC.4
- 打字稿:2.0.9
- rxjs:5.0.0 -beta.12
基本类是替代helper.ts:
export class SubstituteHelper {
number: number;
kind: string;
}
这将导入到 seltoute.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>
仅通过阅读代码以及从那里显示的内容来猜测。我发现了两个可能的问题:
-
<div *ngIf="subs && subs.length>0">
(subs
当时可能是undefined
) -
subs: SubstituteHelper[] = []
(初始化值)
没有*ngif 和()我放在上面的标签中,这就是解决此错误的原因。/p>
<div *ngFor="let substi of subs">
<substitute [sub]="substi"></substitute>
</div>