1
我想寫一個角2指令,它應具有以下行爲:角2指令與ngModel和ngControl
必須是可用的使用和不使用包裝
<form [ngFormModel]="form">
應該使用
[(ngModel)]
用於數據綁定內部使用
Observer
,在最後一次用戶輸入發生後250ms內更新ngModel
當使用包裝
<form [ngFormModel]="form">
應該可以監聽form.valueChanges
(當然最後的用戶輸入後,應該解僱250毫秒)
我已經寫了下面的指令來進行測試:
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
。
我在做什麼錯?或者是否有人有一些正在工作的示例代碼?
在此先感謝!