Я хочу написать Угловую 2 Директиву, которая должна иметь следующее поведение:Угловой 2 Директивы с ngModel и ngControl
Должно быть полезными и без оберточной
<form [ngFormModel]="form">
Если использовать
[(ngModel)]
для привязки данныхВнутренний номер
Observer
, который обновляетngModel
250 мс после того, как произошел последний вход пользователяПри использовании упаковки
<form [ngFormModel]="form">
должна быть возможность прослушиватьform.valueChanges
(которые, конечно, должны стрелять 250ms после последнего ввода данных пользователем)
я написал следующую директиву для тестирования:
import {Directive, EventEmitter, Input, Output} from 'angular2/core'
import {NgModel} from 'angular2/common'
import {Observable} from 'rxjs/Observable'
@Directive({
selector: '[queryDirective]'
})
export class QueryDirective {
constructor(public model:NgModel) {}
ngOnInit() {
this.model.control.valueChanges
.debounceTime(250)
.subscribe(val => this.model.control.updateValue(val,{emitEvent:true}));
}
}
Он работает при использовании нетngControl
. Затем он говорит, что ни один провайдер для NgModel
не найден.
<form [ngFormModel]="form">
<input queryDirective ngControl="..." type="text" [(ngModel)]="...">
</form>
Но когда я использую NgControl
на конструктор метод this.model.control.updateValue
не обновит ngModel
.
Что я делаю неправильно? Или у кого-нибудь есть пример кода, который работает?
Заранее благодарен!