我正在使用angular-ui select2指令。我知道它现在已被弃用,但我的应用程序始终使用此指令,并且我希望进行改进。很快,我们将迁移到新的ui = select替代方案。
我正在按照http://select2.github.io/select2/中的示例通过ajax调用加载json数据。数据正确加载并可以选择,但是我无法搜索并缩小/过滤结果。根据我的理解,该指令支持这一点。当我输入内容时,数据会刷新,但不会根据搜索字词进行过滤。下面是我的代码
<input type="text" id="users" ui-select2="filters.select2Test" ng-model="filters.model.users"
data-placeholder="Pick a user" ng-required="true" style="width: 300px" />
$scope.filters = {
select2Test: {
id: function(user) {
return user.code;
},
minimumInputLength: 3,
multiple: true,
ajax: {
url: 'api/employee', //This URL points to an internal location and wouldn't work
dataType: 'json',
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
results: function(data, page) {
return { results: data };
}
},
formatResult: function(data) {
return "<div class='select2-user-result'>" + data.name + "</div>";
},
formatSelection: function(data) {
return data.name;
},
initSelection: function(element, callback) {
var data = [];
$(element.val().split(",")).each(function(i) {
var item = this.split(':');
data.push({
id: item[0],
title: item[1]
});
});
callback(data);
}
}
}
答案 0 :(得分:0)
需要在select2选项中添加匹配器:
select2Test: {
...
matcher: function(term, text, option) {
return option.name.includes(term);
},
...
}