Angular material 自动完成搜索字符串中的任意位置?
Angular material autocomplete search anywhere in string?
https://material.angularjs.org/latest/#/demo/material.components.autocomplete
谁能告诉我如何使自动完成 (Angular material) 不仅在单词的开头而且在单词的任何地方搜索字符串。
例如阿拉巴马州这个词:
当您键入 "Ala" 时有效,但当您键入 "bama" 时无效。
当我输入 "bama" 时如何让它工作?
我知道我可以使用第三方指令,例如 Angucomplete Alt:
http://ghiden.github.io/angucomplete-alt/
但我认为 Angular material 应该有这个选项?
这是原始函数md-autocomplete:
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(state) {
return (state.value.indexOf(lowercaseQuery) === 0);
};
}
请试着稍微改变一下条件,像这样:
return (state.value.indexOf(lowercaseQuery) >= 0);
它应该会按照您想要的方式工作。
demo only matches characters at the beginning of the result due to specifying the caret flag,即:md-highlight-flags="^i"
要允许自动完成查找任何匹配的字符,您应该使用全局标志,即:md-highlight-flags="gi"
您还需要将 filterFn 函数中的 state.value.indexOf(lowercaseQuery) === 0
行更改为 state.value.indexOf(lowercaseQuery) !== -1
查看此代码笔以获取工作示例:
http://codepen.io/DevVersion/pen/KrOYoG
https://material.angularjs.org/latest/#/demo/material.components.autocomplete
谁能告诉我如何使自动完成 (Angular material) 不仅在单词的开头而且在单词的任何地方搜索字符串。
例如阿拉巴马州这个词: 当您键入 "Ala" 时有效,但当您键入 "bama" 时无效。 当我输入 "bama" 时如何让它工作?
我知道我可以使用第三方指令,例如 Angucomplete Alt: http://ghiden.github.io/angucomplete-alt/ 但我认为 Angular material 应该有这个选项?
这是原始函数md-autocomplete:
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(state) {
return (state.value.indexOf(lowercaseQuery) === 0);
};
}
请试着稍微改变一下条件,像这样:
return (state.value.indexOf(lowercaseQuery) >= 0);
它应该会按照您想要的方式工作。
demo only matches characters at the beginning of the result due to specifying the caret flag,即:md-highlight-flags="^i"
要允许自动完成查找任何匹配的字符,您应该使用全局标志,即:md-highlight-flags="gi"
您还需要将 filterFn 函数中的 state.value.indexOf(lowercaseQuery) === 0
行更改为 state.value.indexOf(lowercaseQuery) !== -1
查看此代码笔以获取工作示例: http://codepen.io/DevVersion/pen/KrOYoG