Sorry, meant "from $formatter" below:

Tried invoking $setViewValue(DEFAULT_VIEW) from a) $formatter whenever 
model is empty;

On Tuesday, January 27, 2015 at 8:52:48 AM UTC-8, Nikita Tovstoles wrote:
>
> I am writing a ui control that uses ngModel:
>
> <foo ng-model="myModel"> I would like to ensure that ngModel.$modelValue 
> is never empty and would like to implement the following logic inside the 
> directive: if $modelValue is empty (including programmatically) -> set to 
> internal default model. To be clear, it is not enough for $viewValue not to 
> be empty. I would like $modelValue to not be empty as well. 
>
> Tried invoking $setViewValue(DEFAULT_VIEW) from a) $parser whenever model 
> is empty; b) a $watch watching $modelValue, but do not see $modelValue 
> being updated to a default model (from hard-coded DEFAULT_VIEW. What 
> approach should I take?
>
> thanks,
> -nikita
>
>
> function link(scope, ngModel){
>
> var DEFAULT_VIEW = {};
> ngModel.$formatters.unshift(modelToView);
> ngModel.$parsers.push(viewToModel);
>
> //init 
> ngModel.$setViewValue(DEFAULT_VIEW);
>
> function modelToView(m){
> if(!m) {
>  ngModel.$setViewValue(DEFAULT_VIEW); //no apparent effect on $modelValue
> };
>
> //handle non-empty case
> }
>
> //also tried watching $modelValue
> scope.$watch(function(){return ngModel.$modelValue;}, function(mv, oldMv){
> if(!mv)
> {
>  ngModel.$setViewValue(DEFAULT_VIEW); //no apparent effect on $modelValue
> }
> });
>
>
> }
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to