我正在尝试使用 jquery UI 实现自动完成,但是自动完成文本框位于“with” knockout 绑定(bind)内部,因此 MVC 操作永远不会被触发。
<div data-bind="with: activeButton">
//Some other div's...
<div>
<input type="text" id="autoCompleteText" data-autocomplete-url="@Url.Action("Autocomplete")"/>
</div>
</div>
//On DOM ready
$('*[data-autocomplete-url]').each(function () {
$(this).autocomplete({
source: $(this).data("autocomplete-url")
});
});
当自动完成元素位于“带有” knockout 绑定(bind)内部时,我是否需要执行其他操作来触发 MVC 操作?
最佳答案
您将需要用于 jquery ui 自动完成的 knockout 绑定(bind)处理程序。类似的东西
<div data-bind="with: activeButton">
//Some other div's...
<input type="text" id="autoCompleteText" data-bind='textInput: someSelectedValue, autoComplete:{source: "@Url.Action("Autocomplete")" }' />
</div>
knockout 绑定(bind)
ko.bindingHandlers.autoComplete = {
init: function(element, valueAccessor) {
var autoCompleteOptions = ko.unwrap(valueAccessor()); // Get the current value of the current property we're bound to
$(element).autocomplete(autoCompleteOptions);
}
};
关于javascript - 当元素位于 knockout "with"绑定(bind)内时,jQuery 自动完成不会触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43861110/