如何在Knockout Validation messageTemplate中访问属性名称?

时间:2013-09-25 17:58:24

标签: knockout.js knockout-validation

我正在使用knockout validation插件来验证我的视图模型。该插件允许错误消息的自定义模板。我想显示一个工具提示,显示属性值以及模板中的自定义消息。我可以访问在observable对象上定义的错误但是如何获取属性的名称?感谢

<script type="text/html" id="messageValidation">
    <span rel="tooltip" data-bind="if: field.isModified() && !field.isValid(),
    attr: { title: field.name() + ' is required '}"><i class="icon-exclamation-sign red"></i></span>
    <span data-bind="if: field.isModified() && field.isValid()"><i class="icon-ok green"></i></span>
</script>

1 个答案:

答案 0 :(得分:2)

你得到的只是我害怕的领域

来自src

ko.renderTemplate(config.messageTemplate, { field: valueAccessor() }, null, validationMessageElement, 'replaceNode');

如您所见,您只能获得输入

{ field: valueAccessor() }

好的是它的开源,你可以在文字中添加一个新字段,而且代码是向后的,它们应该做的是

bindingContext.createChildContext({ field: valueAccessor() })

这将确保$ parent,$ data,$ parentContext符号在View

中起作用