Search code examples
angularjsselectng-options

getting model value in controller when in ng repeat


I have written code like below,

<div ng-repeat="rnewobj in rnewobjs">
    <select   name="abc" 
    ng-model="rnewobj.objkey.value" 
    ng-options="item.id as item.name for item in session_dd"
    ng-change="valuechanged()" required>
    </select>

How do i get the model value on change. I want to change model value from controller. How do i do this?


Solution

  • Here is an example of your requirements, setting the value and printing it when it's changed (I just used a button, but you could do whatever):

    http://jsfiddle.net/U3pVM/19572/

    HTML

    <div ng-repeat="rnewobj in rnewobjs">
        <select
            name="abc"
            ng-model="rnewobj.objkey.value"
            ng-options="item.id as item.name for item in session_dd"
            ng-change="valuechanged(rnewobj)" required>
        </select>
        <button type="button" ng-click="reset(rnewobj)">Reset to item 1</button>
    </div>
    

    Javascript

    $scope.session_dd = [{
        id: 1,
        name: "item1"
    }, {
        id: 2,
        name: "item2"
    }, {
        id: 3,
        name: "item3"
    }];
    
    $scope.rnewobjs = [{
        objkey: {
            value: 1
        }
    }, {
        objkey: {
            value: 2
        }
    }, {
        objkey: {
            value: 3
        }
    }];
    
    // print the value when changed
    $scope.valuechanged = function (item) {
        console.log(item.objkey.value);
    };
    
    // set the value
    $scope.reset = function (item) {
        item.objkey.value = 1; // reset to 1
    };