以下是工作代码 - 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) 如果有人离开第一个结束时间输入字段,那么它在控制台中会显示为未定义。
我的想法是不要使用 - 单独的 ng-model="shiftstart[shiftnumber]"
和 ng-model="shiftend[shiftnumber]"
代替我可以使用一个包含多个对象的单个数组,但我无法集成该解决方案,请让我知道我可以在代码中修改哪些内容来实现这一目标。
最佳答案
如果我确实正确理解了你的问题,我认为你把事情过于复杂化了。如果您简单地想要:
- 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>
关于javascript - 在 AngularJS 中创建动态 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542880/