Javascript 通过重复事件更新角度日期
我有一个结束日期,用户可以输入结束计划事件的日期。但是,我希望用户能够在事件结束之前输入多次重复的事件。例如,如果他们说希望它每周重复一次,持续4周,那么我希望能够计算结束日期,并更新该值。事实上,我不太确定我应该如何处理这个问题,因为我对angular还比较陌生 我是这么想的Javascript 通过重复事件更新角度日期,javascript,angularjs,Javascript,Angularjs,我有一个结束日期,用户可以输入结束计划事件的日期。但是,我希望用户能够在事件结束之前输入多次重复的事件。例如,如果他们说希望它每周重复一次,持续4周,那么我希望能够计算结束日期,并更新该值。事实上,我不太确定我应该如何处理这个问题,因为我对angular还比较陌生 我是这么想的 function EventEditCtrl($scope) { init(); function init() { $scope.event = { Acti
function EventEditCtrl($scope) {
init();
function init() {
$scope.event = {
ActiveEndTimeDate: '',
Occurrences: '',
Repeated: ''
}
}
$scope.updateEndDate = function () {
//update event?
};
}
您只需要计算结束日期并将其分配给模型。最难的部分是用JavaScript进行日期计算。你可以使用momentjs这样的库来简化事情
$scope.updateEndDate = function () {
var endDate = moment().add($scope.event.Repeated, parseInt($scope.event.Occurrences));
$scope.event.ActiveEndTimeDate = endDate.format('YYYY/MM/DD');
};
小提琴:
这种方法需要使用ngChange
来监控表单值的更改并触发更新。它依赖于将ngChange
应用于可以触发更改的所有位置,并在标记中泄漏了太多的逻辑。更干净的方法是在模型发生变化时触发变化
一种方法是使用手表
$scope.$watch('[event.Repeated, event.Occurrences]', function () {
var endDate = moment().add($scope.event.Repeated, parseInt($scope.event.Occurrences));
$scope.event.ActiveEndTimeDate = endDate.format('YYYY/MM/DD');
});
小提琴: