我们升级为Ember 1.11.1和Ember-validations 2.0.0-alpha.3 3.
控制器
export default Ember.Controller.extend(EmberValidations.Mixin, {
canValidate: true,
validationModel: Ember.computed.alias("model"),
validations: {
'validationModel.name': {
presence: { 'if': 'canValidate', message: 'Please enter a name'},
},
},
}模板
{{log "error value" errors.validationModel.name}}
{{input classBinding="errors.validationModel.name:app_input_box_error:app_input_box" placeholder="Document Name" value=model.name}}有了上面的模板代码之后,验证就会像预期的那样工作,并根据是否存在验证错误而将输入的类移出。但是,当{{log}行被移除时,类绑定似乎丢失,并且输入类不再适当更新。请对原因/修复有任何建议吗?
注释类绑定(例如在标准div中)继续正常工作
发布于 2015-05-14 10:13:05
不妨试试这个:
{{input classBinding="errors.validationModel.name:app_input_box_error:app_input_box" placeholder="Document Name" value=validationModel.name}}发布于 2015-05-19 21:19:59
我在文档中看到的不是classBinding,而是classNameBindings,我不确定沿途是否有什么不推荐的东西。
我怀疑classBinding没有触发要更新的属性,我似乎回忆起了一些关于成员验证的问题,但有时并不总是触发。看看https://github.com/aceofspades/ember-validations/commit/85ecaa348f2a1ccfb52f614037c4b4dbf77bceb4,看看这是否有帮助。
从更高的层次来看,我认为您会经常重复这种模式,根据错误与特定字段的关联添加一个类名。就我个人而言,我可能会花一些时间寻找或构建一个输入组件,该组件处理注释,您可以在其中拥有一个fieldName属性,并让它查看适当的errors.validation.${fieldName}。在JS中进行编码可能会有所帮助,或者至少可以使调试变得更容易。
这不精确地与单个字段相关,但也可能对您有所帮助,特别是迁移到HTMLBars语法,即
{{input class="{{if errors.validationModel.name 'app_input_box_error' 'app_input_box'}}"}}https://stackoverflow.com/questions/30233400
复制相似问题