У меня есть форма с кнопкой «заполнить форму», которая задает его свойства модели. Смена модели, похоже, работает нормально, но когда я нажимаю кнопку, элементы управления, реализующие ControlValueAccessor, не получают своих значений, пока я не сосредоточусь и не размываю их.программно обновлять значение для элемента управления, которое реализует ControlValueAccessor
Если элемент управления представляет собой простой вход html, изменения модели сразу видны. Если я установил один из моих пользовательских элементов управления, они не будут отражать их изменения, пока я не нажму на них ...
любые подсказки?
Я использую угловой 2 финала.
этот код показывают значения, то есть сразу после формы, создавая ngOnInit() {
super.ngOnInit();
this.form = this.formBuilder.group({
myfield: ['', ]
})
this.myfield= this.form.controls['myfield'];
...
this.obs.push(this.route.params.subscribe(params => {
if (params['myparam']) {
this.model.myfield= params['tper_Codigo'];
this.dataservice.get("miEntity", this.model).subscribe(somedata => {
this.model = somedata;
});
}
}));
этот код не
someClick() {
//trying all sort of methods
this.model = { myfield : 'aaaa'};
this.form.patchValue({ myfield : 'bbbbb' });
(<FormControl>this.form.controls['myfield']).updateValueAndValidity();
(<FormControl>this.form.controls['myfield']).patchValue('cccc');
}
, как я уже говорил ... если я щелчок и размытие элемента, все вышеописанные методы DO отражают значение, поэтому значение установлено, просто не показано до размытия
У вас есть код, который вы можете поделиться? –
ОК, наконец, я решил принять погружение DEEP в angular2/material на github. Я закончил реорганизацию реализации пользовательского контроля в очень «гейм», близком к их ... теперь он работает. Думаю, я никогда не узнаю, какая часть мин не работает – user5328504