在AngularJS中创建动态ng模型

时间:2014-08-28 07:16:13

标签: javascript html5 angularjs loops angularjs-scope

以下是工作代码 - http://plnkr.co/edit/6lRhiTd1BrKRdThY0WNB?p=preview

在此,如果您从下拉列表中选择数字并填写数据,然后单击并检查控制台,您将看到如下结果 -

[
    Object { start_time="12Start", end_time="12END"},
    Object { start_time="34start", end_time="786"},
    Object { start_time="123", end_time="5656"},
    Object { start_time="098", end_time="77"},
    Object { start_time="75757", end_time="57567"}
]

现在如果你检查,有两个数组 - $scope.shiftstart | $scope.shiftend

我正在循环使用这些方法,但这种方法的一个问题是 -

1)它需要依赖于相等长度的数组。

2)如果有人留下第一个结束时间输入字段,那么它在控制台中显示为 undefined

我在想的是不要使用 - 单独ng-model="shiftstart[shiftnumber]"& ng-model="shiftend[shiftnumber]"我可以使用包含多个对象的单个数组,但我无法集成解决方案,请告诉我在代码中可以修改的内容以实现此目的。

1 个答案:

答案 0 :(得分:1)

如果我确实理解了你的问题,我认为你会过度复杂化。如果你只是想:

  • a)有一个班次列表,可以从中选择一个,
  • b)能够编辑所选择的班次

然后您需要以下内容:

<强> CTRL

$scope.shifts = [
  { nr: 1, start_time: "12Start", end_time: "12END" },
  { nr: 2, start_time: "34start", end_time: "786"   },
  { nr: 3, start_time: "123",     end_time: "5656"  },
  { nr: 4, start_time: "098",     end_time: "77"    },
  { nr: 5, start_time: "75757",   end_time: "57567" }
];

$scope.active = null;

查看-演示

<h3>Select a shift</h3>
<select
  data-ng-model="active"
  data-ng-options="shift as shift.nr for shift in shifts"
></select>

<div data-ng-show="active">
  <h3>Edit start/end</h3>
  start time <input data-ng-model="active.start_time"><br>
  snd time <input data-ng-model="active.end_time">
</div>

演示http://jsbin.com/fibilalaciha/1/