在ng重复时获取控制器中的模型值

时间:2015-10-20 09:09:39

标签: angularjs select ng-options

我编写了如下代码,

<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>

如何在变化时获得模型值。我想从控制器更改模型值。我该怎么做?

3 个答案:

答案 0 :(得分:1)

以下是您的要求示例,设置值并在更改后打印(我只使用了一个按钮,但您可以做任何事情):

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
};

答案 1 :(得分:0)

您需要实现观察者功能。

$scope.$watch('rnewobj.objkey.value', function(data) {
    console.log(data);
});

该值存储在数据变量中。

答案 2 :(得分:0)

使用同名的$scope个变量。它依赖于Angular的双向数据绑定。 假设您要编辑阵列上的对象索引2:

app.controller('MyController', function ($scope) {
  var index = 2;
  $scope.rnewobjs[index].objkey.value = 'YourValue';
});

您的视图会自动更改该值。