我在重复提问,因为我之前忽略了重要信息。向ng-repeat中的字段添加默认值时数据绑定停止
我有一个日期模型,它改变了基于这个输入的值:AngularJS: How to set default value to ng-model="searchText"?。
<div class="modal-body">
<div style="display:inline-block; margin-bottom:20px;">
<h3 style="float:left;">Set All Dates: </h3>
<span style="padding-top:15px; padding-left:7px;" class="input-group date">
<input id="setAllEffectiveDates" type="text" data-ng-model="date" value="" class="form-control input-sm">
<span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</span>
</div>
<table class="table table-bordered">
<tbody data-ng-repeat="(associatedContract,ndc) in ndcs">
<tr>
<td>
<div class="input-group date updateIt">
<input id="effectiveDate" type="text" data-ng-model="date" class="form-control input-sm">
<span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
当我选择一个日期,所有的输入变为所选的日期时,上述工作按预期进行。
我的问题是,我想添加一个默认值的字段。该值是通过此处迭代的变量:<tbody data-ng-repeat="(associatedContract,ndc) in ndcs">
。
<input id="effectiveDate" type="text" data-ng-model="date" ng-init="date=ndc.value" class="form-control input-sm">
添加ng-init="date=ndc.value"
确实增加了来自控制器的默认值如预期。但它会删除数据绑定。更改input id="setAllEffectiveDates"
时,该字段不再更新。
我怎样才能有默认值,但也有数据绑定工作?
编辑:
更新功能我加入NG-变化:
<input id="setAllEffectiveDates" ng-change="updateEffectiveDates(date)" type="text" data-ng-model="date" value="" class="form-control input-sm">
,然后做了一个功能:
$scope.updateEffectiveDates = function (date) {
angular.forEach($scope.ndcs, function (ndc) {
ndc.value = date;
});
console.log($scope.ndcs);
};
这看起来像它更新模型,但不字段在页面上。
NG-INIT用于调用您希望在该项目被实例化执行的功能。一般建议绝对不要用于任何事情。你能在你的控制器中初始化模型到所需的值吗? –
@MikeFeltman是的,但有多个日期值,这就是为什么有ng重复。你是在说一个数组还是其他的东西? –
模型中只有一个日期。您的意思是使用associatedContract或ndc对象上提供的日期属性吗? –