我正在开发一个 AngularJS 应用程序,我正在使用 ui-select 来允许用户选择多个角色和选项卡。过滤非常适合选项卡,但由于某种原因,它不适用于角色,即使两者都是从后端检索并具有相同的结构。
<div class="form-group">
<label>{{'CONFIG_DEPARTMENTS_ADDDEPARTMENT_ROLE' | translate}}</label>
<ui-select multiple ng-model="model.Roles" theme="bootstrap" uib-tooltip="{{'TOOLTIP_GLOBAL_ADD_ROLE' | translate}}" uis-open-close="getDepartmentRoles()">
<ui-select-match placeholder="{{'CONFIG_DEPARTMENTS_ADDDEPARTMENT_SEARCHROLE' | translate}}">{{$item.Title}}</ui-select-match>
<ui-select-choices repeat="role in roles | filter: $select.search">
<div>{{role.Title}}</div>
</ui-select-choices>
</ui-select>
<div ng-if="model.Errors.Roles">
{{model.Errors.Roles}}
</div>
这是选项卡的代码,运行良好:
<div class="form-group">
<label>{{'CONFIG_DEPARTMENTS_ADDDEPARTMENT_TABS' | translate}}</label>
<ui-select multiple ng-model="model.Tabs" theme="bootstrap" uib-tooltip="{{'TOOLTIP_GLOBAL_ADD_TAB' | translate}}" uis-open-close="getDepartmentTabs()">
<ui-select-match placeholder="{{'CONFIG_DEPARTMENTS_ADDDEPARTMENT_SEARCHTABS' | translate}}">{{$item.Title}}</ui-select-match>
<ui-select-choices repeat="tab in tabs | filter: $select.search">
<div>{{tab.Title}}</div>
</ui-select-choices>
</ui-select>
<div ng-if="model.Errors.Tabs">
{{model.Errors.Tabs}}
</div>
对于角色,我尝试使用以下方法进行过滤,但没有成功:
filter: {name: $select.search.Title}
还更改了其中一个列表的属性,以创建明确的角色标题,但仅标题不起作用。
来自:Angular ui-select 仅过滤一个字段,不起作用
过滤器:
查看后台数据。如果您发送两个请求,一个请求获取
model.Roles
,另一个请求获取 roles
,则数据可能会存在差异。仅当 model.Roles
中的对象与 role
中的 roles
对象相同时,才会过滤对象。