【发布时间】:2014-10-07 08:46:19
【问题描述】:
我犯了经典的初学者错误,将我所有的业务逻辑都放入我的控制器中,而不是使用服务。
我现在想将一堆函数放入服务中并将其注入到我的控制器中。 一般来说,有没有好的方法以及如何做到这一点?
例如,我有一个日期选择器,它作为默认日期设置为从今天起两周内。我在控制器中解决了这个问题,比如
$scope.dt=function(){
$scope.dt=new Date();
$scope.numberOfDaysToAdd=14;
$scope.dt=$scope.dt.setDate($scope.dt.getDate()+$scope.numberOfDaysToAdd);
而在我的 html 中 ng-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()
};
这不符合我的预期。这里有什么问题?
干杯
【问题讨论】:
标签: angularjs model-view-controller datepicker factory service-factory