Angularjs 将momentjs的代码重构为一个函数
我有两个函数prev()和next(),它们的代码几乎相同 有没有办法把这两个函数合并成一个函数Angularjs 将momentjs的代码重构为一个函数,angularjs,angularjs-scope,refactoring,momentjs,angular-moment,Angularjs,Angularjs Scope,Refactoring,Momentjs,Angular Moment,我有两个函数prev()和next(),它们的代码几乎相同 有没有办法把这两个函数合并成一个函数 <button id="prev-search-button" ng-click="prev()"><</button> <button id="next-search-button" ng-click="next()">></button> $scope.prev = function(){ var search = $sc
<button id="prev-search-button" ng-click="prev()"><</button>
<button id="next-search-button" ng-click="next()">></button>
$scope.prev = function(){
var search = $scope.inputDate ? $scope.inputDate: moment() ;
$scope.day = moment(search).subtract(1, 'days').format('DD');
$scope.month=moment(search).subtract(1, 'days').format('MM');
};
$scope.next = function(){
var search = $scope.inputDate ? $scope.inputDate: moment();
$scope.day = moment(search).add(1, 'days').format('DD');
$scope.month = moment(search).add(1, 'days').format('MM');
};
$scope.prev=函数(){
var search=$scope.inputDate?$scope.inputDate:moment();
$scope.day=时刻(搜索)。减去(1,'days')。格式('DD');
$scope.month=时刻(搜索)。减去(1,'days')。格式('MM');
};
$scope.next=函数(){
var search=$scope.inputDate?$scope.inputDate:moment();
$scope.day=时刻(搜索)。添加(1,'days')。格式('DD');
$scope.month=时刻(搜索)。添加(1,'days')。格式('MM');
};
我尝试了以下方法,但不起作用
<button id="prev-search-button" ng-click="prevAdd(subtract)"><</button>
<button id="prev-search-button" ng-click="prevAdd(add)"><</button>
$scope.prevAdd = function(arg){
var search = $scope.inputDate ? $scope.inputDate: moment() ;
$scope.day = moment(search).arg(1, 'days').format('DD');
$scope.month=moment(search).arg(1, 'days').format('MM');
};
首先:ng click=“prevAdd(subtract)”
,ng click=“prevAdd(add)”
如果错误,请将参数作为字符串或整数传递,如ng click=“prevAdd('subtract')”
,ng click=“prevAdd('add')”
Second:在时刻(搜索)中没有方法arg
。arg
,它只有添加
和减去
。所以下面的说法是错误的:
$scope.day = moment(search).arg(1, 'days').format('DD');
$scope.month=moment(search).arg(1, 'days').format('MM');
应写为:
if(arg === 'add') {
$scope.day = moment(search).add(1, 'days').format('DD');
$scope.month=moment(search).add(1, 'days').format('MM');
}
if(arg === 'subtract') {
$scope.day = moment(search).subtract(1, 'days').format('DD');
$scope.month=moment(search).subtract(1, 'days').format('MM');
}
请使用以下最终修改代码:
<button id="prev-search-button" ng-click="prevAdd('subtract')"><</button>
<button id="prev-search-button" ng-click="prevAdd('add')"><</button>
$scope.prevAdd = function(arg){
var search = $scope.inputDate ? $scope.inputDate: moment() ;
if(arg === 'add') {
$scope.day = moment(search).add(1, 'days').format('DD');
$scope.month=moment(search).add(1, 'days').format('MM');
}
if(arg === 'subtract') {
$scope.day = moment(search).subtract(1, 'days').format('DD');
$scope.month=moment(search).subtract(1, 'days').format('MM');
}
};