ng-repeat中md-datepicker的动态ng模型

时间:2017-09-26 00:16:09

标签: javascript angularjs datepicker angular-material

我通过以下代码动态添加出生日期的md-datepicker:

$scope.infData = [];
            $scope.addInf = function() {
            if ($scope.infData.length < 4) {
            $scope.infData.push({});
            }
        }; 

我的html如下:

<div class="col-xs-7 col-md-3"
ng-repeat="d in infData | limitTo: 4"
ng-value="d.value"
ng-class="{'md-align-top-left': $index==1}">
<md-input-container flex>
<label>infant D.O.B</label>
<md-datepicker
onkeydown="return false"
name="myDate{{$index}}"
ng-model="inf[$index==1].date"
md-hide-icons="all"
ng-required="true"
md-current-view="year"
md-min-date="ctrl.minDate"
md-max-date="ctrl.maxDate"
md-open-on-focus="true"
ng-messages>
</md-datepicker>

他们仅限于4人。我的目标是获得正确日期选择器的成功日期:

if ($scope.inf.dateString = moment($scope.inf.date).format("YYYY-MM-DD")) {
    $scope.list.push(this.inf.dateString);

现在我的问题是: 1)当$ index = 1时,我如何将值赋予此日期选择器(如果此日期选择器不推,则不显示值)? 2)该值始终为最大日期(今天的任何日期)? 3)我确定我的ng-model=inf[$index==1].date错了,但我怎么能让它变得动态? 4)如何在提交$scope.inf = ""; & $scope.inf = {};之后重置值不工作且值保持在那里

任何想法和帮助都会节省我的一天。 PS: 我阅读了关于angularjs ng-model inside nested ng-repeat的大部分叠加问题,但其中没有对我有效

1 个答案:

答案 0 :(得分:0)

不能解决这个问题,但也许你想要这个:

$scope.addInf = function(index) {
    if ($scope.infData.length < 4) {
       $scope.infData.push({
         date: (index == 1 ? 'Some value you want' : '')
       });
    }
}; 

更改日期选择器HTML

ng-model="d.date"

您的添加按钮HTML

<button ng-if="$last" ng-click="addInf($index)">myBtn</button>

假设按钮位于重复的div