私は古典的な初心者の間違いを犯し、サービスを使用する代わりに、すべてのビジネス ロジックをコントローラーに入れました。
私は今、サービスに入れたい関数がたくさんあり、これをコントローラーに挿入します。一般的に、そうする良い方法はありますか?
たとえば、今日から 2 週間後にデフォルトの日付が設定されている日付ピッカーがあります。私はコントローラでこれを解決しました
$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()
};
これは私が期待するようには機能しません。ここで何が問題なのですか?
乾杯