gpt4 book ai didi

javascript - ngstrap typeahead无序多关键字搜索

转载 作者:行者123 更新时间:2023-12-03 07:28:45 25 4
gpt4 key购买 nike

我在 ngstrap typeahead 方面遇到问题,具体情况如下:

var companyItem= [
{
"item_id": 1,
"item_name": "mobile phone middle nokia",
"company_id": 1,

},
{
"item_id": 2,
"item_name": "mobile phone iphone",
"company_id": 1,

},
{
"item_id": 8,
"item_name": "mobile phone samsung",
"company_id": 1,

},
{
"item_id": 9,
"item_name": "apple watch",
"company_id": 1,

}
]

我的标记:

<input type="text" class="form-control" name="itemName" id="itemName" ng-model="item.itemName" data-min-length="0" bs-options="item as item.item_name for item in companyItem | filter:{item_name:$viewValue}:customCompare" bs-typeahead="setCustomerData" data-watch-options="true" data-container="body" autocomplete="off" ng-readonly="readOnly" required>

我的脚本是:

$scope.customCompare = function(itemName, viewValue) {
var keyword = viewValue.split(" ");
var partialMatch = false;

for(var i=0;i<keyword.length;i++){
console.log('keyword'+i+' '+keyword[i]);
console.log('itemName '+itemName);
console.log('keyword[i].indexOf(itemName) > -1 '+itemName.indexOf(keyword[i].toString()));
if(itemName.indexOf(keyword[i].toString()) > -1){
console.log(' <<>>---------------');
partialMatch =true;

}

}
return partialMatch;
}

我尝试在输入文本中使用关键字“mobile iphone”进行搜索,但没有结果。

当我在控制台日志中写入时返回 true,但记录未显示

无论如何,如果“phone iphone”它就像默认的预输入一样工作

我做错了什么或者这种方法不起作用

https://plnkr.co/edit/3iJwREetLMnTup24Sbtd

提前致谢。

最佳答案

当我在 typeahead.js 中看到“filter: 'bsAsyncFilter'”时,我得到了另一个解决方案,因此我通过绕过过滤器在 js 中进行覆盖,因为现在我通过 api 使用异步数据:

function CustomTypeaheadFilter ($filter)  {
return function(array, expression, comparator) {

if(array && angular.isFunction(array.then)) {
return array.then(function(results) {
console.log(results);
// return $filter('filter')(results, expression, comparator)
return results;
});
} else {
//return $filter('filter')(array, expression, comparator);
return array;
}
}
};

标记:

<input type="text" class="form-control" name="itemName" id="itemName" ng-model="item.itemName" data-min-length="0" bs-options="item as item.item_name for item in getItemfromDB($viewValue)" bs-typeahead="setCustomerData" data-filter="CustomTypeaheadFilter" autocomplete="off"  required>

过滤器选项未在 ngstrap 文档中声明,我已将问题发布到 github 上,无论如何希望 ngstrap 能够将此选项提升到文档中。

关于javascript - ngstrap typeahead无序多关键字搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35893093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com