ui-select multiple: ng-model 如何将其保存为字符串而不是数组

ui-select multiple: ng-model how will it be saved as string and not as array

我有这个 ui select:

<ui-select multiple
    ng-model="meas.daysSelected"
    theme="bootstrap"
    close-on-select="false">
    <ui-select-match placeholder="days">{{$item}}</ui-select-match>
    <ui-select-choices repeat="day in days | filter:$select.search">
        <div ng-bind-html="day | highlight: $select.search"></div>
    </ui-select-choices>
</ui-select>

$scop.days = ['Sun', 'Mon', 'Tue' ... ] 

这是一个简单的 table 和 angular ng-repeat

<tr ng-repeat="meas in foo= (res.foos | filter: subSearch : strict)">

我用以下方法过滤它:

<input type="text" class="form-control" ng-model="subSearch.daysSelected">

问题是这样的:当我 select 一个对象然后 de-select 它时,"daySelected" 模型正在变成一个数组。 angular 的过滤器只是忽略它并过滤它。 所以我需要 2 之一的帮助:

  1. 将 daySelected 设为字符串(当 selected 时它将是:"sun, mon" 或
  2. 调整过滤器以在数组中工作

假设搜索文本类似于 "Mon,Tue",它将过滤所有具有 ["Mon"、"Tue"] 的 ui-选择,您可以编写您的自己的过滤器功能并通过它。例如:

<tr ng-repeat="meas in foo= (res.foos | filter: $ctrl.filterDaysSelected">

并且在您的控制器中,您需要创建该函数:

$ctrl.filterDaysSelected = function(value, index, array) {}

你需要在哪里:

  • 将搜索条件的值拆分为“,”
  • 验证拆分数组中的每一项都存在于函数值参数中