javascript - 在 AngularJS 中创建动态 ng-model

标签 javascript html 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) 如果有人离开第一个结束时间输入字段,那么它在控制台中会显示为未定义

我的想法是不要使用 - 单独的 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>

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

关于javascript - 在 AngularJS 中创建动态 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542880/

相关文章:

html - 使 flex 列表元素在较小的屏幕上交错成多行

javascript - Angular .js : directive object in scope is always undefined

javascript - SOAP 请求中缺少激活全局自定义操作所需的输入字段

html - Jumbotron 背景图像未显示全 Angular

javascript - 如何在 XSLT 中包含 CSS 文件

angularjs - Angular 中的多个自定义指令范围

javascript - AngularJS - 将 $index 显示为 char

javascript - 内容丰富:documentToHtmlString 不包含富文本中的嵌入图像

javascript - 如何使用 jQuery 和 HTML 5 制作一些动画?

javascript - 如何将用户名和 ID 与命令分开?