現在、 https://github.com/ericmbarnard/Knockout-Validationの検証プラグインを使用しており、入力ボックスなどのプレーンな値フィールドで正常に機能していますが、先行入力フィールドに表示される検証メッセージを取得できません。
タイプアヘッドが割り当てられているオブザーバブルには、必要な検証ルールが割り当てられており、プラグインはそれを検証できます。たとえば、空白の場合、isValid()を呼び出すとfalseが返されますが、検証メッセージは表示されません。
私の先行入力カスタムバインディングは次のとおりです。
ko.bindingHandlers.typeahead =
init: (element, valueAccessor) ->
binding = this
elem = $(element)
value = valueAccessor()
elem.typeahead(
source: ->
ko.utils.unwrapObservable(value.source)
onselect: (val) ->
value.target val
)
elem.change ->
value.target elem.val()
update: (element, valueAccessor) ->
elem = $(element)
value = valueAccessor()
elem.val value.target()
次のように使用されます:
<input type="text" data-provide="typeahead" data-items="4" data-bind="typeahead: { target: selectedValue, source: sourceValues}" />
githubの問題に関する1つの投稿でko.bindingHandlers.validationCore.init(element, valueAccessor)
は、バインディングのinitセクションの最後に貼り付けることを提案していますが、これは何の役にも立たないようです。