而不是在每個文本輸入中重複此設置?是否有可能將valueUpdate:'afterkeydown'設置爲Knockout.js中的默認值UpdateUp?
要清楚,我說的是這樣的:我輸入
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
90%,我更喜歡這個上面'change'
- 當前的默認。
而不是在每個文本輸入中重複此設置?是否有可能將valueUpdate:'afterkeydown'設置爲Knockout.js中的默認值UpdateUp?
要清楚,我說的是這樣的:我輸入
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
90%,我更喜歡這個上面'change'
- 當前的默認。
如果能夠「標記」一類目標的投入,你可以試試這個:
$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'");
我希望它能幫助
這是一個選項,但仍然存在樣板代碼 - 額外的類。 「valueUpdate:'afterkeydown'」在這種情況下可能不會那麼長,並且顯示更多的「含義」。 –
您不能直接對所有的文本輸入設置的默認功能。你可以做的反而是創建一個模板輸入和所有的則可以只是例如
<!-- ko template:{name:'input-template', data: email}--><!--/ko-->
這些模板通過使用無容器符號避免創建額外的HTML元素
那麼就定義模板,任何你想要的:
<script type="text/html" id="input-template">
<input type="text" name="$data" data-bind="value: $data, valueUpdate:'afterkeydown'"/>
</script>
從技術上講,這是可行的,但我寧願有一些東西看起來更像普通的HTML。感謝您的回答:) –
請問爲什麼傳統的html不是出於美學的原因,因爲如果您已經在使用淘汰賽,像模板和無容器符號這樣的東西可以真正釋放出很多淘汰賽的力量,和其他開發人員已經有了學習曲線。 – mikeswright49
這的確是關於美學。在挑剔的一面,我可能有點太過分了,但是現在我更願意在隱藏輸入元素本身之前添加樣板「valueUpdate:'afterkeydown'」。它只是給了我更多的「意義」。個人喜好我猜:) –
由於在淘汰賽沒有選項可以更改的方式valueUpdate默認的作品,你唯一的選擇是改變基因敲除庫源,使其工作你想要的方式。如果庫已更新,則必須再次進行此更改,或者可以要求Knockout的開發人員添加配置選項,以便可以更改默認值UpdateUp事件。
您可以替換現有的值bindingHandler來添加afterkeydown綁定。
見高明的解決方案How can I get Knockout JS to data-bind on keypress instead of lost-focus?
你嘗試過什麼樣的方法? – Jeroen
截至去年,答案似乎是「你不能,這裏有一些解決方法。」自開始討論以來,淘汰賽不斷進行改進,並且已經看到了主要的版本號變更(第2版至第3版)。有沒有辦法做到這一點呢? – Josh