我希望能够根据在查询中键入的文本执行“条件自动完成”。例如:
用户可以:
键入“f”,然后为所有字段名称“field_name”、“field_age”提取建议名称作为建议。
如果用户随后键入或选择“field_name”,然后在框中键入“=”,则将请求对“field_name”唯一的特定数据列表,例如[Albert,Bob,Clarisse]。
如果用户随后键入“”(空格),则选项将被远程拉入或访问[“AND”、“OR”、“==”、“!=”。一旦用户选择或键入“==”,然后基于当前字符串“field_name == ' '”,将使用列表 [Albert, Bob, Clarisse]。
如果用户改为键入 field_age...,那么会专门针对年龄 [7,3,6] 的列表或 json 对象发出请求,然后弹出该对象。搜索框中的示例输入为:
field_name = 'Albert' AND field_age = '7'
我见过一个库 typeahead.js,但它似乎只是拉入所有要自动完成的数据,而不是“按需数据”(在这种情况下,名称和年龄。原因是名称可能很大,有很多名字,我不想让客户端下载每个可用字段的所有值,因为这将是一个相当大的下载)。
做这个的最好方式是什么?typeahead.js 是支持这个还是更好的替代库?