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

时间:2013-12-05 02:49:29

标签: javascript angularjs angularjs-service angularjs-controller

我的控制器变得相当大......主要是因为我需要做的所有输入验证。我想要做的是将所有验证功能拆分为一个单独的“部分控制器”。

通常,我只是创建一个服务并移动那里的所有功能(我可能仍然这样做)。我唯一的问题是:验证功能偶尔需要注意范围。例如,当我进行交叉验证时。我不确定是否要将范围传递给服务。

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

.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*/ });

1 个答案:

答案 0 :(得分:1)

我必须同意Jeff指令,如果你将其分解为基本功能,它将更有用,并且可能是可重用的。

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

检查这个相等指令,它应该有帮助: http://plnkr.co/edit/bTFMzV70vjOzwhimVtQL?p=info


对于你的小提琴中的例子你可以这样做:(虽然我相信你是一个简化的例子)

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