我犯了经典的初学者错误,把我所有的业务逻辑都放到了我的控制器中,而不是使用服务。
我有一堆功能,现在我想将它们放入服务中并将其注入到我的控制器中。一般来说,有没有一种好的方法可以做到这一点以及如何做到这一点?
例如,我有一个日期选择器,它作为默认日期设置为从今天起两周内。我在控制器中解决了这个问题
$scope.dt=function(){
$scope.dt=new Date();
$scope.numberOfDaysToAdd=14;
$scope.dt=$scope.dt.setDate($scope.dt.getDate()+$scope.numberOfDaysToAdd);
而在我的 htmlng-model='dt'
中。我现在想采用这种逻辑并将其放入服务中。我考虑过使用工厂,我做了这样的事情:
app.factory('Datepicker',[function(){
var numberOfDaysToAdd=14;
var addDays=new Date();
addDays.daysToAdd=function(){
addDays = addDays.setDate(addDays.getDate()+numberOfDaysToAdd);
return addDays;
};
return addDays;
}]);
并在控制器中
$scope.dt = function(){
addDays.daysToAdd()
};
这不像我预期的那样工作。这里有什么问题?
干杯