angularjs - md-autocomplete 不适用于 angularjs 中的数字字段
问题描述
我正在使用md-autocomplete
angularjs 材料。当搜索字段为 时,它工作正常string
。但是,当它出现时,它number
不会按预期进行搜索。
我的代码:HTML
<md-autocomplete ng-disabled="isDisabled"
name="DriverEMP_ID"
md-selected-item="selectedEMP_ID"
md-no-cache="ctrl.noCache"
md-search-text="driverText"
md-selected-item-change="selectedDriverEMP_IDChange(item)"
md-items="item in querySearchForDriverEMP_ID(driverText)"
md-item-text="item.display"
md-min-length="0"
placeholder="Driver ID"
required>
<md-item-template>
<span md-highlight-text="driverText" md-highlight-flags="^i">{{item.display}}</span>
</md-item-template>
<md-not-found>
No states matching "{{driverText}}" were found.
</md-not-found>
</md-autocomplete>
JS
var self = this;
var simulateQuery = false;
$scope.isDisabled = false;
self.DriverIDList = [{"value":"23869","display":"43721"},{"value":"36407","display":"48188"},{"value":"43942","display":"62924"},{"value":"13911","display":"22831"},{"value":"15531","display":"27175"},{"value":"13531","display":"21609"},{"value":"69526","display":"74854"},{"value":"14085","display":"23122"},{"value":"71018","display":"77915"}];
$scope.querySearchForDriverEMP_ID = querySearchForDriverEMP_ID;
function querySearchForDriverEMP_ID(query) {
var results = query ? self.DriverIDList.filter(createFilterForDriverID(query, objDriverIDListData)) : self.DriverIDList;
var deferred = $q.defer();
$timeout(function () { deferred.resolve(results); }, Math.random() * 1000, false);
return deferred.promise;
}
function createFilterForDriverID(query, DriverIDList) {
var lowercaseQuery = query.toString();
return function filterFn(DriverIDList) {
return (DriverIDList.display.indexOf(lowercaseQuery) !== -1);
};
}
但对于字符串字段,它工作正常。
self.DriverIDList = [{"value":"23869","display":"Md. Foysal Iqbal"},{"value":"36407","display":"Md. Saiful Islam"},{"value":"43942","display":"Md.Sajib"},{"value":"13911","display":"Alamgir Hossain"},{"value":"15531","display":"Md.Hossain"},{"value":"13531","display":"Md. Masud Sheikh"},{"value":"69526","display":"Md. Sohel Rana"},{"value":"14085","display":"Monirul Islam"},{"value":"71018","display":"Md. Mohoshin Ali"},{"value":"71185","display":"Md. Al Amin"},{"value":"69306","display":"Md. Mohin Uddin"},{"value":"37269","display":"Md Anis Sardar"},{"value":"13909","display":"Md. Rafiqul Islam"},{"value":"10963","display":"Md. Shah Alam"},{"value":"13860","display":"Md. Abul Hashem"},{"value":"67752","display":"Md. Oli Ullah"},{"value":"45015","display":"Md. Abu Taher "},{"value":"560","display":"Md. Rehad Hossain Mamun"}];
任何帮助,将不胜感激。
解决方案
为什么不保持简单,直接在过滤器函数中处理它,而不是自己创建呢?猜测问题出在您的过滤器中。试试这个,看看它是否有效。
self.driverIDList.filter( item => item.display.indexOf(query.toString()) > -1);
推荐阅读
- video - 使用 ffmpeg 会导致不良的运动模糊
- vba - 化学式中的下标数字来自选择
- groovy - 通过 groovy 脚本进行 ODI 选择性逆向工程
- flutter - 在 Flutter 中悬停在 Dragtarget 上时可拖动触发错误信息
- angular - 使用角度将数据导出到excel模板
- apache-spark - 在 Spark SQL 查询中计算派生表的大小
- amazon-web-services - 在 YAML cloudformation 中加入多个资源
- javascript - 搜索时下拉列表向上移动
- html - 如何将自定义颜色应用于嵌入在 Boostratp 3.3.x 样式的链接中的 glyficon 图标?
- android-studio - IntelliJ:在伴随对象和最后一个光标位置之间跳转