Some inputs inside ng-switch don't update the model when changed #1139

Closed
racheldale opened this Issue Jul 12, 2012 · 8 comments

Projects

None yet

5 participants

@racheldale

Inputs that point to fields directly on the scope (e.g. data-ng-model="fieldName") don't update when inside of an ng-switch case. This works fine for fields that are inside an object (e.g. data-ng-model="item.fieldName").

Here is an example: http://jsfiddle.net/r4RKW/1/

@racheldale This works as intended. The ng-switch directive creates a new scope and the input binds to the fieldName in this new scope, instead of the parent one. Scopes prototypically inherit from each other, AngularJS just behavior is consistent with behavior of regular JavaScript objects. More info here: http://docs.angularjs.org/guide/scope

Member

Yes you are right. ng-switch creates a new scope and so ng-model is writing to an inner scope value and the outer scope value does not get updated. As you say, use objects to refer to the field.

Here is the modified working fiddle for the pragmatic people out there: http://jsfiddle.net/MrFusion/r4RKW/36/

Hi,

I am having this problem, however, I need to bind the ngModel from the parent.
The ng-model attribute of the directive is like "data.title", but the directive creates an element that needs to use the same model.
Inside the template of the directive exists a ng-switch that is troubling me.

How can I bind the model and still uses ng-switch in this case?

Member

@jodinathan - if you provide a plunker (or similar) of your situation you are more likely to get a solution. It is difficult to help with just a description.

Member

You should not be passing ngModel around like that.
Here is better way: http://jsbin.com/yihuyucamu/1/edit?html,js,output

Hi @petebacondarwin ,

I fixed your JSBIN: http://jsbin.com/behome/edit?html,js,output for anyone that comes here.
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment