Angularjs 如何对不同的ng repeat字段应用不同的验证,并在ng repeat中自动计算其总数

Angularjs 如何对不同的ng repeat字段应用不同的验证,并在ng repeat中自动计算其总数,angularjs,validation,angularjs-ng-repeat,Angularjs,Validation,Angularjs Ng Repeat,示例代码: <table> <tr> <td>Class</td> <td> Input one </td> <td> Input two </td> <td> Total </td> </tr> <tr ng-repeat= "x in records">

示例代码:

<table>
    <tr>
        <td>Class</td>
        <td> Input one </td>
        <td> Input two </td>
        <td> Total </td>
    </tr>
    <tr ng-repeat= "x in records">
        <td>My {{x.class}} </td>
        <td><input type="tel" ng-value="x.tel" ng-model="telephone"></td>
        <td><input type="tel" ng-value="x.inone" ng-model="inone"></td>
        <td><input type="tel" ng-value="x.intwo" ng-model="intwo"></td>
        <td><input type="tel" ng-value="x.total" ng-model="total"></td>
    </tr>   
    <tr>
        <td colspan="5" class="text-center"> <input type="button" value="Save" ng-click="mydata(records)"> </td>
    </tr>
</table>
提交后,动态添加用户填写的字段

最初用户只能看到

1.使用3个空白输入字段(输入一个、输入两个和总计)和一个空白电话字段对零件进行分类

我想要什么

1.应验证用户的电话字段

A. Personal class which allow only 6 digits, and 

B. for Social class it should allow 10 digits.
  • 在个人的inone字段中输入值的范围为0-10,intwo字段为11-30
  • 在Social的一个字段中输入值的范围为30-40,在两个字段中输入值的范围为40-60

    4.Total字段应计算在该类的inone和intwo模型中输入的任何内容的总和。请注意,Total字段是由ng repeat生成的,因此我们不能直接进行合计


  • 沿着这条线做些什么

    <td ng-if="x.class=='Personnal'"><input type="tel" ng-maxlength="5"  ng-model="x.inone" ng-change="x.total=x.inone+x.intwo"></td>
    <td ng-if="x.class=='Social'"><input type="tel" ng-maxlength="5" ng-model="x.inone"></td>
    <td ng-if="x.class=='Personnal'"><input type="tel" ng-minlength="11" ng-maxlength="15" ng-model="x.intwo" ng-change="x.total=x.inone+x.intwo"></td>
    <td ng-if="x.class=='Social'"><input type="tel" ng-minlength="16" ng-maxlength="20"  ng-model="intwo"></td>
    
    
    
    总而言之,

    • ng值无效,请将数据直接绑定到x。[value]
    • 使用ng if在不同类之间切换
    • 使用ng minlength/ng maxlength进行验证
    • 每次使用ng change重新计算总计时,您可能希望在总计字段中添加只读/禁用标志。如果total不是字符串串联,请使用将在控制器中调用的函数进行适当转换并求和

      • 这条路线上的一些东西呢

        <td ng-if="x.class=='Personnal'"><input type="tel" ng-maxlength="5"  ng-model="x.inone" ng-change="x.total=x.inone+x.intwo"></td>
        <td ng-if="x.class=='Social'"><input type="tel" ng-maxlength="5" ng-model="x.inone"></td>
        <td ng-if="x.class=='Personnal'"><input type="tel" ng-minlength="11" ng-maxlength="15" ng-model="x.intwo" ng-change="x.total=x.inone+x.intwo"></td>
        <td ng-if="x.class=='Social'"><input type="tel" ng-minlength="16" ng-maxlength="20"  ng-model="intwo"></td>
        
        
        
        总而言之,

        • ng值无效,请将数据直接绑定到x。[value]
        • 使用ng if在不同类之间切换
        • 使用ng minlength/ng maxlength进行验证
        • 每次使用ng change重新计算总计时,您可能希望在总计字段中添加只读/禁用标志。如果total不是字符串串联,请使用将在控制器中调用的函数进行适当转换并求和

        x.inone+x.intwo不能直接完成。您必须解析。@AnkitVadi如果total不是字符串串联,请使用将在控制器中调用的函数进行正确转换并求和。x.inone+x.intwo不能直接完成。您必须解析。@AnkitVadi如果total不是字符串串联,请使用将在控制器中调用的函数进行适当转换并求和。不幸的是,这个问题相当混乱。如果您只有两行,并且每行都有不同的要求,那么使用
        ng repeat
        没有任何意义。尽管如此,这些需求本身并没有意义。当你说输入值的“范围”时,不清楚你的意思是什么;您是说在第一个字段中,您想要6个数字,但希望所有6个数字都是0-5?你怎么能有一个10位数的字段,范围是11-15?不幸的是,这个问题相当令人困惑。如果您只有两行,并且每行都有不同的要求,那么使用
        ng repeat
        没有任何意义。尽管如此,这些需求本身并没有意义。当你说输入值的“范围”时,不清楚你的意思是什么;您是说在第一个字段中,您想要6个数字,但希望所有6个数字都是0-5?你怎么能有一个10位数的字段,范围是11-15?