Model Ionic 2如何将动态添加的div文本绑定到模型?
我需要完成的是将一个离子输入绑定到模型,但显示一个格式化的值,同时将原始值保留在模型中 文本掩码在这里不作为afaik应用,它也会转换原始值 因此,我找到了一个解决方案,在ion输入上添加了一个指令,它隐藏了子输入,并插入了一个包含格式化值的div 一切正常,只是如果模型在别处修改,div不会自动更新 问题:如何将div动态绑定到模型(通过调用formatNumber函数) 我探索了一些“可观察”的方法,但没有成功 下面是我用来管理输入和div的(简化的)代码示例 home.htmlModel Ionic 2如何将动态添加的div文本绑定到模型?,model,ionic2,bind,directive,Model,Ionic2,Bind,Directive,我需要完成的是将一个离子输入绑定到模型,但显示一个格式化的值,同时将原始值保留在模型中 文本掩码在这里不作为afaik应用,它也会转换原始值 因此,我找到了一个解决方案,在ion输入上添加了一个指令,它隐藏了子输入,并插入了一个包含格式化值的div 一切正常,只是如果模型在别处修改,div不会自动更新 问题:如何将div动态绑定到模型(通过调用formatNumber函数) 我探索了一些“可观察”的方法,但没有成功 下面是我用来管理输入和div的(简化的)代码示例 home.html <i
<ion-content padding>
<ion-item>
<ion-label stacked>Label</ion-label>
<ion-input item-content myDirective [(ngModel)]="data.field01"></ion-input>
</ion-item>
</ion-content>
myDirective.ts
import { Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[myDirective]'
host: {
'(click)': 'onClick()'
}
})
export class MyDirective {
public formattedValue: string;
constructor( private elemRef: ElementRef,
private renderer: Renderer
) {
}
ngOnInit() {
setTimeout(() => {
let myInput = this.elemRef.nativeElement.children[0];
this.myInput.hidden = 'true';
let myDiv = document.createElement("div");
this.myDiv.className = this.myInput.className;
this.myDiv.innerText = 'mydiv';
this.elemRef.nativeElement.appendChild(this.myDiv)
}, 0);
}
onClick() {
this.showPicker();
}
...
}
其他信息:
- 输入值是通过一个我没有放在这里的自定义选择器编辑的 =>工作正常
- 当picker关闭时,picker=>会将格式化的值直接应用到myDiv
import { Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[myDirective]'
host: {
'(click)': 'onClick()'
}
})
export class MyDirective {
public formattedValue: string;
constructor( private elemRef: ElementRef,
private renderer: Renderer
) {
}
ngOnInit() {
setTimeout(() => {
let myInput = this.elemRef.nativeElement.children[0];
this.myInput.hidden = 'true';
let myDiv = document.createElement("div");
this.myDiv.className = this.myInput.className;
this.myDiv.innerText = 'mydiv';
this.elemRef.nativeElement.appendChild(this.myDiv)
}, 0);
}
onClick() {
this.showPicker();
}
...
}