我应该把这些函数和变量放在我的 Angularjs 控制器中的什么位置
Where should I put these function and variables currently in my Angularjs Controller
我有一个显示 table 的单页应用程序,它是用户编辑的 table。我使用的日期选择器需要设置一些属性和函数。
那些目前在我的控制器中,它变得非常臃肿。 ~380 行,其中~130 行是日期选择器代码。
我可以将它们放在工厂中,并通过它来使用它们,但我不确定这是否可行,因为其中许多属性和函数都位于控制器范围内。
任何建议都会有所帮助!
我使用的日期选择器是:
Here
我已经将 .directive 移到了它自己的文件中。
是的,你可以把它放在工厂或服务中。您所要做的就是创建服务,将代码放在那里,然后将服务注入您的控制器。那么您将能够从您的控制器访问该服务:
我不确定您使用的是什么 angular 语法,但这里有一个示例:
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>
我有一个显示 table 的单页应用程序,它是用户编辑的 table。我使用的日期选择器需要设置一些属性和函数。
那些目前在我的控制器中,它变得非常臃肿。 ~380 行,其中~130 行是日期选择器代码。
我可以将它们放在工厂中,并通过它来使用它们,但我不确定这是否可行,因为其中许多属性和函数都位于控制器范围内。
任何建议都会有所帮助!
我使用的日期选择器是: Here
我已经将 .directive 移到了它自己的文件中。
是的,你可以把它放在工厂或服务中。您所要做的就是创建服务,将代码放在那里,然后将服务注入您的控制器。那么您将能够从您的控制器访问该服务:
我不确定您使用的是什么 angular 语法,但这里有一个示例:
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>