2014-12-04 14 views
15

Ustawianie controller.$options w funkcji link wydaje się działać dla debouncing rozmycie zdarzenia:Jak ustawić opcje modelu ng w dyrektywie niestandardowej?

controller.$options = { 
    updateOn : 'blur', 
    debounce : 3000 
}; 

... ale gdy próbuję to samo dla domyślnych zdarzeń, model nie jest aktualizowana:

controller.$options = { 
    updateOn : 'default', 
    debounce : 3000 
}; 

Podczas korzystania z dyrektywy ng-model-options wszystko działa zgodnie z oczekiwaniami.

Zobacz http://plnkr.co/edit/KLrSrs2Jw7pkoAUNRJDf?p=preview

Odpowiedz

18

Patrząc na source of the ngModelOptions directive, wydaje się, że zamiast ustalania updateOn : 'default', trzeba ustawić controller.$options.updateOnDefault = true;

+1

i znowu trzeba spojrzeć na kod źródłowy, och, dziękuję wam! wspaniałe dokumenty API –

15

Twoim przypadku można spróbować

ngModelController.$options = { 
    updateOn: 'blur', 
    updateOnDefault: true, 
    debounce: { 
     'blur': 2000, 
     'default': 3000 
    } 
    }; 

ale teraz (NG1. 6+) musisz zrobić to jak (czytaj więcej here, here i here):

ngModelController.$overrideModelOptions({ 
    updateOn: 'blur', 
    updateOn: 'default', 
    debounce:= { 
     'blur': 2000, 
     'default': 3000 
    } 
}); 
+0

Dzięki za uratowanie mojego dnia !!! –

+0

@steampowered masz całkowitą rację, zaktualizuję –

Powiązane problemy