2016-02-04 19 views
0

我有一个页面应用程序,它显示一个用户可编辑的表格。有一个我使用的日期选择器,需要设置一些属性和功能。我应该在哪里把这些函数和变量当前放在我的Angularjs控制器中

那些目前坐在我的控制器,这是变得非常臃肿。约380条线,其中约130条是日期选择代码。

我可以把它们放在一个工厂中,并通过它来使用它们,但我不确定这是否会起作用,因为许多这些属性和功能都位于控制器范围内。

任何建议将是有帮助的!

我使用的日期选择是: Here

我提出.directive到自己的文件了。

回答

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> 
+0

所以控制器$ injec t = ['datepicker']将允许从视图中调用所有这些函数吗? – Xgongiveittoya

+0

是啊在这里,我会给你一个小提琴的例子:https://jsfiddle.net/ahmadabdul3/84esk49L/2/ –

+0

@Xgongiveittoya看到更新的答案 –

相关问题