我应该把这些函数和变量目前放在我的 Angularjs 控制器中的什么位置
Where should I put these function and variables currently in my Angularjs Controller
我有一个单页应用程序,显示一个可由用户编辑的表格。我使用的一个日期选择器需要设置一些属性和函数。
这些目前正放在我的控制器中,它变得非常臃肿。 ~380 行,其中 ~130 行是日期选择器代码。
我可以将它们放在工厂中,然后通过它使用它们,但我不确定这是否有效,因为其中许多属性和函数都位于控制器范围内。
任何建议都会有所帮助!
我正在使用的日期选择器是:这里
我已经将 .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>
相关文章:
- 修改控制器AngularJS的全局值
- 从控制器Angularjs调用链接函数
- 共享变量和多个控制器AngularJS
- 未定义的控制器AngularJS
- 将模块注入控制器AngularJs
- 使用工厂/服务在控制器AngularJS之间推送数组中的数据
- 如何更新控制器angularjs中的.value
- 调用另一个控制器Angularjs中的控制器
- 如何访问两个控制器AngularJS
- 如何在多个文件中定义控制器 - AngularJs.
- 从父控制器 AngularjS 访问 Popup 控件
- 从同一控制器 Angularjs 中的另一种方法访问$scope变量
- 将数据从服务传递到控制器 AngularJS
- 在控制器 AngularJS 之间共享功能
- 推送通知发送到控制器 Angularjs
- 工厂没有被注入控制器 - angularJS
- 在控制器 AngularJS 之间传递 ID 值
- 闭包中的多个控制器 angularjs.
- 将服务文件中收到的 Rest 数据发送到控制器 angularjs
- 覆盖不同控制器 Angularjs 中的变量