AngularJS 将行验证为单个复合实体

AngularJS validating a row as a single compound entity

提问人:CJ Dennis 提问时间:2/8/2023 更新时间:2/8/2023 访问量:13

问:

我有一个作者、读者和偏好(高、中、低或黑名单)的结构。所有首选项都是中等的,除非规则覆盖它。每当有一本新书问世时,就应该给一位读者阅读该书的机会。一些读者喜欢特定的作者,所以规则如下:

作者 读者 偏好
查尔斯·狄更斯 乔·博格斯

有些作者可能会被列入所有读者的黑名单():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)的偏爱既高又低。如果发生这种情况,我希望突出显示这两条规则。在上面的示例中,两条规则“阿道夫·希特勒,被列入黑名单”和“,约翰·史密斯,低”都应突出显示,直到解决,例如另一行“阿道夫·希特勒,约翰·史密斯,列入黑名单”。nullnull

但是,在 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>

即,我想验证为一个完整的对象,而不仅仅是 、 和 。rulerule.authorrule.readerrule.preference

AngularJS 验证

评论


答: 暂无答案