作者:手浪用户2602890763 | 来源:互联网 | 2023-01-31 12:03
如何使用durandalJS创建自动完成文本框。鉴于代码不起作用。视图模型(JS)define(['repositoriescustomerRepository'
如何使用durandal JS创建自动完成文本框。 鉴于代码不起作用。
视图模型(JS)
define(['repositories/customerRepository', 'plugins/router', 'plugins/http', 'durandal/app', 'knockout'], function (customerRepository, router, http, app, ko) { return { router: router, activate: function () { var data = customerRepository.listMovies(); $(function () { $("#movie").autocomplete({ source: data, focus: function (event, ui) { $("#movie").val(ui.item.name); return false; }, select: function (event, ui) { $("#movie").val(ui.item.name); // $("#friend-id").val(ui.item.id); return false; } }) .data("ui-autocomplete")._renderItem = function (ul, item) { return $("") .append( "" + "" + item.name + " |
" + item.barcode + " |
") .appendTo(ul); }; }); }, };
});
视图(HTML)
一个好的起点是从激活中删除你的逻辑并将其添加到附加的方法(假设你使用的是Durandal 2.0)如果不是,你会将它添加到viewAttached。 当DOM准备就绪时会触发这个,所以你不需要将它包装在$(function(){})中;
尝试一下,看看你的jquery ui auto complete是否正确绑定。
我个人更喜欢使用Select2 ,然后为它创建一个ko自定义绑定。
希望这能让你朝着正确的方向前进!
Durandal是一个旨在处理许多事情的Javascript框架,但它的主要目的不是创建UI元素。
使用Durandal,您可以使用Knockout创建声明性双向数据绑定,这些绑定可以提供控件,例如自动填充文本框。 您最好的选择是研究如何使用Knockout创建自动完成文本框或下拉列表。
Google就此主题提供了许多结果
'autocomplete textbox knockout'
以上就是jQuery教程分享使用Durandal JS自动完成文本框相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注(编程笔记)。