我有一个单页面应用程序,显示一个可由用户编辑的表格。我使用了一个日期选择器,需要设置一些属性和功能。
那些目前正坐在我的控制器中,这个控制器变得非常臃肿。 ~380行,其中约130行是日期选择器代码。
我可以将它们放在工厂中,并通过它使用它们,但我不确定这是否可行,因为许多这些属性和功能都位于控制器范围内。
任何建议都会有所帮助!
我使用的日期选择器是: Here
我已经将.directive移动到了自己的文件中。
答案 0 :(得分:1)
我不确定您使用的是什么角度语法,但这是一个示例:
angular.module('app', [])
.service('datepicker', datepicker)
.controller('controller', controller);
function datepicker() {
//codes
}
controller.$inject = ['datepicker'];
function controller(datepicker) {
//codes
datepicker.function(); //call some datepicker service function
}
如果要从视图中访问服务功能,则需要执行以下操作:
controller.$inject = ['datepicker'];
function controller(datepicker) {
//codes
self.datepicker = datepicker;
datepicker.function(); //call some datepicker service function
}
然后在视图中执行:
<div ng-controller='controller as ctl'>
{{ctl.datepicker.function()}}
</div>