Bruce Lee
Bruce Lee

Reputation: 97

AngularJS model does not update after manual change of option

I have a problem with AngularJS model. Currently I have two select tags and I fill it by some async action then I just set select tag model by received data. Everything works well but if I change select tag (option) manually then model can't be changed anymore by this async actions - script keeps model picked by me manually - I am sure that I assign proper data to model from server response, because it works untill I don't change it manually...

<select ng-model="sModel" ng-change="changeAction(sModel)" name="sList" id="sList" ng-options="s.name for s in sList track by s.sId"></select>

(second select looks like above).

If someone have some idea why ngModel can't be updated after manual changes, please reply :)

Upvotes: 0

Views: 545

Answers (2)

Bruce Lee
Bruce Lee

Reputation: 97

Weird but I fixed it - It was because 'select' was wrapped by div which had ng-controller. Controller contains actually one action with change select option. After remove this ng-change it didn't help but removing whole controller declaration did..

<div ng-controller="sController">
<select ng-model="sModel" ng-change="changeAction(sModel)" name="sList" id="sList" ng-options="s.name for s in sList track by s.sId"></select>
</div>

Someone can explain me this anomaly ? ;/ Model always was changed in main/common controller (parent) where also was initially created.

http://jsfiddle.net/nkr33bo0/

Upvotes: 0

Vikrant Mahajan
Vikrant Mahajan

Reputation: 535

You must be using ng model with direct variables. When using ngmodel with html input types use object types in ng model else value does not reflect.

$scope.req={value:""};

in html use

<select data-ng-model="req.value"></select>

Upvotes: 2

Related Questions