我正在使用AngularJS。我試圖在用戶點擊「添加新行」按鈕時動態生成行。這裏是我的$scope
數組變量,如何根據StartDate datepicker在AngularJS中選擇的值設置EndDate datepicker的StartDate
$scope.avails = [{"Name":"","startdate":"","enddate":""}];
$scope.addNewRow=function() {
$scope.avails.push({"Name":"","startdate":"","enddate":""});
}
,這裏是我的標記
<div class="row" ng-repeat="ff in avails">
<label>Name</label>
<input type="text" ng-model="ff.Name"/>
<label>Start Date</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="form-control" b-datepicker name="startdate" id="startdate{{$index}}" ng-model="ff.startdate" value="{{ff.startdate}}" placeholder="Start Date" >
</div>
<label>End Date</label>
<div class="input-group">
<span class="input-group-addon"> <i class="fa fa-calendar"></i></span>
<input type="text" class="form-control" b-datepicker name="startdate" id="startdate{{$index}}" ng-model="ff.startdate" value="{{ff.startdate}}" placeholder="Start Date" >
</div>
<div>
,我寫了directive
的日期選擇器,如:
.directive('bDatepicker', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function(scope, el, attr,ngModel) {
ngModel.$render = function() {
el.datepicker('update', ngModel.$viewValue || '');
};
el.datepicker({
autoclose:true,
format:'mm/dd/yyyy'
}).on('changeDate', function(value) {
var dateStrToSend = (value.date.getMonth() + 1) +'/'+value.date.getDate()+'/'+value.date.getFullYear();
scope.$apply(function() {
ngModel.$setViewValue(dateStrToSend);
});
$(".datepicker").hide();
});
}
};
})
現在我能夠創造出新行當用戶點擊Add New
按鈕時,每行包含開始和結束日期選擇器,當用戶在開始日期選擇器下選擇日期時,我需要將該日期設置爲開始日期相應的結束日期選擇器。
因爲我將指令應用到元素作爲屬性,如何更改此指令中的另一個元素的值?
使用https://github.com/angular-ui/ui-date你可以設置ui-date =「{minDate:whatever.startdate}」 – kuncajs