3
私はカスタムディレクティブを使用しています。これはホストにvalue属性を設定する必要があります。 問題はコンポーネントのモデルを更新せず、要素値のみを更新します。ここで角2のカスタムディレクティブはモデルを更新しません
ライブplnkrリンクです:入力値の属性を更新https://plnkr.co/edit/lcT4q9EP3OEnuIDcGobC?p=preview
//our root app component
import {Component} from 'angular2/core';
import { Directive, ElementRef, OnInit, HostListener } from 'angular2/core';
@Directive({selector: '[myData]'})
class MyDataDirective implements OnInit {
private el: any;
constructor(el: ElementRef) {
this.el = el.nativeElement
}
@HostListener('focus') onFocus() {
console.log("focus event triggered...")
this.el.setAttribute("value", "On Focus value") //Input value changes but model doesn't update
}
ngOnInit() {
console.log("oninit function called...")
this.el.setAttribute('value', 1234)
}
}
@Component({
selector: 'my-app',
template: `
<input type="text" placeholder="Enter text" [(value)]="inputValue" myData/>
`;
directives: [MyDataDirective]
})
export class App {
constructor() {
this.inputValue = "Value from model"
}
}