aurelia-validation分离自定义元素

时间:2018-01-11 15:48:21

标签: javascript validation aurelia aurelia-validation

我正在尝试使用aurelia-validation进行客户端验证。尽管客户端验证工作得很好,但它会强制重新评估视图中的自定义元素。例如,典型的流程如下(自定义元素的顺序为detached /" unbind ed"可能会不时发生变化):

validation starting
custom-element#1 detached
custom-element#2 detached
custom-element#3 detached
custom-element#2 unbind
custom-element#3 unbind
custom-element#1 unbind
validation ended
custom-element#1 bind 
custom-element#2 bind
custom-element#1 attached
....

当然,重新激活自定义元素意味着还需要从服务器获取数据,以便以有意义的方式呈现元素(例如,下拉列表中的选项或列表中的项目等等)上)。

有关应用程序的更多详细信息:验证规则在服务器端(WebAPI)定义,端点可以为"实体"提供规则。类型。然后,这些规则在客户端转换为aurelia-validation规则。然后将这些规则用于我的目标实体对象(可以是任何"实体"类型,具体取决于场景;然后相应地获取规则)是一件简单的事情。示例代码如下所示:

this.clientRules = this.ruleAdapter.toAureliaRules(validationRules);
this.validationController.addObject(this.targetEntity, this.clientRules);

// and finally invoke validate when required
this.validationController.validate()

请注意,自定义元素也会使用targetEntity

我不确定如何隔离问题并寻找根本原因。任何建议都会很好。

更新:在targetEntity期间考虑validate正在修改,我也尝试使用以下代码:

const dummyEntity = JSON.parse(JSON.stringify(this.entity));
this.validationController.validate({ object: dummyEntity, rules: this.clientRules });
// naturally, while trying this code I removed the addObject call

但是,这也没有用:(

于2014年1月12日更新:感兴趣的用户也可以通过here进行讨论。

其他调查结果:如果有帮助,请分享另一项调查结果。在调试期间,即使在开始验证之前,即在控件到达this line之前,自定义元素似乎已分离。那根本原因可能在其他地方吗?

解决方案:抱歉。我的坏:P确实与aurelia验证无关。解决方案是将if.bind更改为show.bind:D

0 个答案:

没有答案