2014-12-02 68 views
0

这是我的代码,如何从我的输入框中的数组更改名称? 如何在全部数组中获取所有更改的名称?先谢谢了。马可。从范围更改获取数组

app.js

var g[]; 
var names = ['John', 'Steve', 'Mark', 'George']; 

for (var i = 1; i <= 4; i++){ 
    g.push({myCount: i, myName: names[i]}); 
}; 

$scope.allnames = g; 

$scope.Calculate = function (??????) { 
    console.log(' INDEX = ' + myCount ???????); 
    console.log(' CHANGE NAME = ' + myName ???????); 

}; 

的index.html

<div class="row" ng-repeat="testx in allnames"> 
    <input type="text" class="form-control" ng-model="testx.myCount"/> 
    <input type="text" class="form-control" ng-model="testx.myName" ng-blur="Calculate(?????)" /> 
    </div>       
+0

首先观察,在'for'回路'i'变量应在'0'启动和停止在'<= 3 '或者你应该把'name [i]'改写成'names [i-1]'。数组基于零。 – Brett 2014-12-02 18:15:57

回答

0

对模型的所有更改都存储在$scope.allnames中,所以为了Caculate()已编辑的对象的值需要引用它。在这个例子中,由于对象存储在一个数组中,所以$index变量与ng-repeat一起提供给我们我们需要的东西。

HTML

<div class="row" ng-repeat="testx in allnames"> 
    <input type="text" class="form-control" ng-model="testx.myCount"/> 
    <input type="text" class="form-control" ng-model="testx.myName" ng-blur="Calculate($index)" /> 
</div> 

的JavaScript

$scope.Calculate = function (index) { 
    // get the associated object from $scope.allnames 
    var person = $scope.allnames[index]; 

    console.log(' INDEX = ' + person.myCount); 
    console.log(' CHANGE NAME = ' + person.myName); 
}; 
0

使用$指数得到索引ng-重复

<div class="row" ng-repeat="testx in allnames"> 
    <input type="text" class="form-control" value="{{testx.myCount}}"/> 
    <input type="text" class="form-control" ng-model="testx.myName" /> 
</div> 

它的工作原理.. !!