angular js:将一个大型控制器拆分为多个文件

angular js: splitting up a large controller into multiple files

本文关键字:控制器 大型 拆分 文件 一个 js angular      更新时间:2024-03-09

我有一个控制器越来越大。。主要是因为我需要做所有的输入验证。我想做的是将所有的验证函数拆分成一个单独的"部分控制器"。

通常情况下,我只会创建一个服务,并将所有功能转移到那里(我仍然可以这样做)。我遇到的唯一问题是:验证函数偶尔需要了解范围。例如,当我进行交叉验证时。我不确定是否要将作用域传递给服务。

解决这个问题的最佳方法是什么?使用服务

.service("validation-service", function() {
    return {
        populate: function($scope) { //return validator functions }
    };
}); 

或者,有没有办法将控制器分为两个文件?像这样的

文件1

.partialController("myController", function($scope) { /*do normal stuff here*/ });


文件2

.partialController("myController", function($scope) { /*do validations here*/ });

我必须同意Jeff指令将更加有用,并且如果您将其分解为基本功能,则可能会重复使用。

例如,您可以构建一个密码确认指令或一个语义不同的指令来检查相等性。

看看这个平等指令,它应该会有所帮助:http://plnkr.co/edit/bTFMzV70vjOzwhimVtQL?p=info


对于Fiddle中的例子,你可以这样做:(尽管我相信你的Fiddle是一个简化的例子)

<input name='start' type="number" ng-model="model.start" max="{{model.end}}"/>
<input name='end' type="number" ng-model="model.end" min="{{model.start}}"/>