如何使用$ index

时间:2016-05-18 13:47:53

标签: angularjs

对...在我的控制器中我有一个这样的数组:

$scope.EmployeeTimes = [{Day: 'Monday',StartTime: '08:00', FinishTime: '5:00'},
                       { Day: 'Tuesday',StartTime: '08:00', FinishTime: '5:00'},
                       {Day: 'Wed',StartTime: '08:00', FinishTime: '5:00'},
                       {Day: 'Thursday',StartTime: '08:00', FinishTime: '5:00'}]

然后我在我的视图中传递并循环上述上下文:

 <div ng-repeat="a in EmployeeTimes track by $index">
                    <input type="text" ng-model="a.Day">
                    <input type="text" ng-model="a.StartTime">
                    <input type="text" ng-model="a.Finish">
                </div>

正如你所看到我使用跟踪$ index,这会自动创建我需要的所有文本字段。 现在我如何从文本字段中获取每个值?所以在上面的例子中,我需要从周一到周四为特定员工获取StartTime和finishTime。如何获得这些价值? 基本上我试图避免我在星期一到星期四创建一个startTIme和FinishTime文本框,因此我使用了跟踪索引。我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:2)

以下是基于您的代码的CodePen with a working example:更改内容,按“过程数据”链接,然后查看您的控制台。

感谢Angular绑定,只要您更改文本字段中的内容,就会更新Javascript模型。如果您想访问星期一的开始时间,请执行以下操作:


    $scope.EmployeeTimes[0].StartTime

您可以更改时间然后点击进程;如果您查看控制台,您将在控制器中看到更新的数据。在控制台中,我将星期二的StartTime更改为'02:00'后看到以下内容:


    Processing...
    console_runner-d0a557e….js:1 Day: Monday StartTime: 08:00 FinishTime: 5:00
    console_runner-d0a557e….js:1 Day: Tuesday StartTime: 02:00 FinishTime: 5:00
    console_runner-d0a557e….js:1 Day: Wed StartTime: 08:00 FinishTime: 5:00
    console_runner-d0a557e….js:1 Day: Thursday StartTime: 08:00 FinishTime: 5:00

这是“进程”链接调用的函数:

$scope.go = function() {
    console.log('Processing...');
    for (var i = 0 ; i < $scope.EmployeeTimes.length; i++) {
      console.log('Day: '+$scope.EmployeeTimes[i].Day+' StartTime: '+$scope.EmployeeTimes[i].StartTime+' FinishTime: '+$scope.EmployeeTimes[i].FinishTime);
    }

$scope.go = function() { console.log('Processing...'); for (var i = 0 ; i < $scope.EmployeeTimes.length; i++) { console.log('Day: '+$scope.EmployeeTimes[i].Day+' StartTime: '+$scope.EmployeeTimes[i].StartTime+' FinishTime: '+$scope.EmployeeTimes[i].FinishTime); }

相关问题