提问人:CJ Dennis 提问时间:2/8/2023 更新时间:2/8/2023 访问量:13
AngularJS 将行验证为单个复合实体
AngularJS validating a row as a single compound entity
问:
我有一个作者、读者和偏好(高、中、低或黑名单)的结构。所有首选项都是中等的,除非规则覆盖它。每当有一本新书问世时,就应该给一位读者阅读该书的机会。一些读者喜欢特定的作者,所以规则如下:
作者 | 读者 | 偏好 |
---|---|---|
查尔斯·狄更斯 | 乔·博格斯 | 高 |
有些作者可能会被列入所有读者的黑名单():null
作者 | 读者 | 偏好 |
---|---|---|
阿道夫·希特勒 | null |
列入黑名单 |
但读者可以覆盖该规则:
作者 | 读者 | 偏好 |
---|---|---|
阿道夫·希特勒 | 玛丽·琼斯 | 中等 |
有些读者可能没有那么多时间阅读,并希望少读任何作者的书():null
作者 | 读者 | 偏好 |
---|---|---|
null |
约翰·史密斯 | 低 |
但该读者可能会为特定作者腾出时间:
作者 | 读者 | 偏好 |
---|---|---|
杰弗里·乔叟 | 约翰·史密斯 | 高 |
因此,所有这些规则组合如下所示:
作者 | 读者 | 偏好 |
---|---|---|
查尔斯·狄更斯 | 乔·博格斯 | 高 |
阿道夫·希特勒 | null |
列入黑名单 |
阿道夫·希特勒 | 玛丽·琼斯 | 中等 |
null |
约翰·史密斯 | 低 |
杰弗里·乔叟 | 约翰·史密斯 | 高 |
当查尔斯·狄更斯(Charles Dickens)的新书问世时,乔·博格斯(Joe Bloggs)更有可能有机会阅读它,而约翰·史密斯(John Smith)的可能性较小,玛丽·琼斯(Mary Jones)的机会一般。 当杰弗里·乔叟(Geoffrey Chaucer)的新书问世时,乔·博格斯(Joe Bloggs)和玛丽·琼斯(Mary Jones)都有平均机会有机会阅读它,而约翰·史密斯(John Smith)的可能性更大。 如果阿道夫·希特勒(Adolf Hitler)的新书问世,乔·博格斯(Joe Bloggs)将没有机会阅读它,玛丽·琼斯(Mary Jones)将有平均机会,并且约翰·史密斯(John Smith)的规则不一致(阿道夫·希特勒(Adolf Hitler)被列入黑名单,供任何读者和任何作者低偏好)并且需要解决。
在编辑规则时,我需要一种方法来验证所有规则。例如,乔·博格斯(Joe Bloggs)不能说他对查尔斯·狄更斯(Charles Dickens)的偏爱既高又低。如果发生这种情况,我希望突出显示这两条规则。在上面的示例中,两条规则“阿道夫·希特勒,被列入黑名单”和“,约翰·史密斯,低”都应突出显示,直到解决,例如另一行“阿道夫·希特勒,约翰·史密斯,列入黑名单”。null
null
但是,在 AngularJS 中,我只知道如何验证单个输入,而不知道如何将整行视为单个输入,并确保它不会与任何其他行发生冲突。
例如:
<textarea ng-model="description" ng-minlength="5" ng-maxlength="255" required="required"></textarea>
我怎样才能验证一个复合项目,即 针对所有其他项目?{rules: [{author: 1, reader: 2, preference: "high"}]}
<div ng-repeat="rule in rules">
<input ng-model="rule.author">
<input ng-model="rule.reader">
<input ng-model="rule.preference">
</div>
即,我想验证为一个完整的对象,而不仅仅是 、 和 。rule
rule.author
rule.reader
rule.preference
答: 暂无答案
评论