Skip to content
This repository has been archived by the owner on Apr 13, 2022. It is now read-only.

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

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

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

racheldale opened this issue Jul 12, 2012 · 8 comments

Comments

@racheldale
Copy link

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/

@pkozlowski-opensource
Copy link
Member

@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

@petebacondarwin
Copy link
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.

@MrFusion42
Copy link

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

@jodinathan
Copy link

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?

@petebacondarwin
Copy link
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.

@jodinathan
Copy link

@petebacondarwin
Copy link
Member

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

@jodinathan
Copy link

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants