我正在使用[email protected]。自定義渲染器和自定義元素中觸發的驗證問題
我的情況是:
- 我有其中有一個驗證器和驗證規則形式
- 沒有在包裝了一個密碼輸入形式無容器自定義元素,並展示當前密碼的綁定屬性
- 的驗證綁定行爲被用在窗體的綁定到這個自定義元素屬性
- 自定義元素也提出了模糊事件,使驗證綁定時觸發包裹密碼輸入失去焦點
驗證生命週期按預期工作。
我遇到的問題是我正在使用的自定義渲染器,它目前假定它接收的元素是實際的DOM輸入元素,因此一個類可以應用於輸入,並且一個兄弟錯誤元素可以在它旁邊注入,但在這裏它接收包裝輸入的自定義元素,不能以相同的方式處理,因爲它只是DOM中的註釋節點。
在aurelia驗證中是否有策略或API可以解決這類問題?我被困住了,在驗證中使用自定義元素時找不到那裏。
編輯:
這裏是自定義元素模板:
<template>
<div class="input-group -password">
<div class="input-toggle-wrapper">
<label for="password" class="-hidden" t="fields_Password"></label>
<input
id="password"
type="${isPasswordVisible ? 'text' : 'password'}"
value.bind="password"
t="[placeholder]fields_Password"
maxlength="20"
focus.trigger="onInputFocus()"
blur.trigger="onInputBlur()" />
<div
class="toggle ${isPasswordVisible ? '-show' : ''}"
click.delegate="onToggleClick($event)"
mousedown.delegate="onToggleMouseDown($event)"></div>
</div>
</div>
</template>
我做到了無容器,因爲我不想<password-box>
排放到DOM作爲外部元素,打破目前的CSS佈局規則(我不想更改CSS)。
但是,如果自定義元素是無容器的,那麼我不知道如何使用表示DOM中的自定義元素的註釋節點的DOM導航來訪問模板內的第一個div。
你能分享你的自定義元素的代碼嗎? 「@無容器」的任何特定原因?也許你將不得不檢查元素是一個真正的HTMLInputElement還是註釋,然後選擇正確的策略 –
我添加了模板代碼。 – Sam