2014-08-28 74 views
1

以下是工作的代码 - http://plnkr.co/edit/6lRhiTd1BrKRdThY0WNB?p=preview创建动态NG-模型AngularJS

在此,如果你选择从下拉数下来,并填写资料,然后点击并查看控制台,你会看到这样的结果 -

[ 
    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

我没有胶水它是什么,你实际上是试图做... – Yoshi 2014-08-28 07:40:48

+0

@Yoshi我想'NG-模型= “shiftstart [shiftnumber]”''&'ng-model =“shiftend [shiftnumber]”'用于像ng-model =“shift.start_time [shiftnumber]”''&'ng-model =“shift .end_time [shiftnumber]“'这样它会产生相同的对象数组结果 – Trialcoder 2014-08-28 08:38:32

回答

1

假设我确实正确地理解了您的问题,我认为您的方式过于复杂。如果你简单的想:

  • 一)有转变的一个列表,从中可以选择,并且
  • 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/

+0

是的,我认为它更好,如果我提供预先填充的数据 – Trialcoder 2014-08-28 09:28:47