我有一个变得越来越大的控制器..主要是由于我需要做的所有输入验证。我想做的是将所有验证功能分成一个单独的“部分控制器”。

通常,我只是创建一个服务,然后将所有功能移到其中(我可能仍会这样做)。我唯一的问题是:验证功能有时需要了解范围。例如,当我进行交叉验证时。我不确定是否要将范围传递给服务。

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

.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



对于您的小提琴中的示例,您可以改为:(尽管我确信您的小提琴是一个简化的示例)

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

10-05 20:44
查看更多