【发布时间】:2016-10-17 17:26:03
【问题描述】:
我知道如何修复我的组件,为此组件的输出值使用不同的名称。
让我分享我的代码
从 '@angular/core' 导入 {Component, Input, Output, EventEmitter}; 从“../pipes/translation.pipe”导入{TranslationPipe};
@Component({
selector: 'msisdn-confirm',
template: `
<div class="msisdn-confirm">
<div>
<input type="text" [(ngModel)]="m1">
</div>
<div>
<input type="text" [(ngModel)]="m2">
</div>
<p class="error">{{message}}</p>
</div>
`
})
export class MsisdnConfirm {
message:string;
@Output('mobile') emitter: EventEmitter<string> = new EventEmitter<string>();
@Input('mobile') set setMobileValue(value) {
this.msisdn_confirm = this.msisdn = value;
}
set m1(value) {
this.msisdn = value;
if (this.valid()) {
console.log('emit' + this.msisdn);
this.emitter.emit(this.msisdn);
}
}
set m2(value) {
this.msisdn_confirm = value;
if (this.valid()) {
console.log('emit' + this.msisdn);
this.emitter.emit(this.msisdn);
}
}
get m1():string {
return this.msisdn;
}
get m2():string {
return this.msisdn_confirm
}
msisdn: string;
msisdn_confirm: string;
constructor() {
}
private valid(): boolean {
if (!/06[0-9]{8}/.test(this.msisdn)) {
this.message = new TranslationPipe().transform("Het mobiele nummer is incorrect, (bijvoorbeeld: 0612345678)")
return false;
} else if (this.msisdn != this.msisdn_confirm) {
this.message = new TranslationPipe().transform("De mobiele nummers komen niet overeen")
return false;
}
this.message = null;
return true;
}
}
所以这是一个非常基本的组件,它验证两个字符串是一个“有效的”荷兰手机号码,所以可以说是一个确认框。现在我可以通过做类似的事情在父组件中获得我的价值
(mobile)="myParam = $event"
我想要的是像这样使用它
[(mobile)]="myParam"
这仅适用于设置,自定义组件不支持吗?
【问题讨论】:
标签: data-binding typescript angular