我必须在我正在工作的网页上做一些更改,在此之前,我有一个输入文本字段来过滤表格上的结果,这是代码:
<p><input type="text" class="form-control" ng-model="search" placeholder="Search..."></p>
并且该表的代码是:
<tr ng-repeat="data in someFile| filter:search | orderBy:'name'">
<td>{{data.state + ', ' + data.city}}</td>
<td> more data goes here etc...</td>
</tr>
运行得很好,但现在我需要更改jQuery选择选择的输入文本字段以获取多个过滤器的不同信息。
我试过的代码是:
<select data-placeholder="Search..." multiple class="control-group chosen-select" chosen id='sl_edo' style="width:200px;">
<optgroup ng-repeat="data in someFile[0].state | orderBy:'name'" label={{data.name}}>
<option value=""> </option>
<option ng-model="search" ng-repeat="city in data.city | orderBy:'name'">
{{city.name}}</option>
</optgroup>
</select>
我知道ng-model代码应该包含在html select 标记中,如下所示:
<select ng-model="search" data-placeholder="Search..." etc..
但是这不会过滤表中的结果,会发生什么是表空白,我不明白为什么,除非我退出过滤器,数据返回到表。我能做些什么来使代码按预期工作?
编辑:我一直在观看ng-model =“search”中的值是什么,到目前为止它们被视为如下数组: [“data1”,“data2 “...] (因为我在options标记上添加了 value = {{localidad.nombre}} ),如果我访问数组中的某个值,就像这样{{search [0]}},通常会像 data1 一样显示文字,但仍然没有过滤表格结果,表格空白,有关正在发生什么的任何想法?
编辑2 :我偶然发现了有关堆栈溢出的一些问题 How to filter multiple values (OR operation) in angularJS,这可能是个问题?我的意思是过滤器应该是多个。
答案 0 :(得分:2)
请原谅我,如果这与你的事情不同,但我写了一个快速的例子。我认为这涵盖了你想要追求的内容。JsFiddle驱动你分配给选项标签的价值。
template<class It1, class It2, class OutputIt>
OutputIt merge_intervals(It1 first1, It1 last1,
It2 first2, It2 last2,
OutputIt destBegin)
{
const auto begin1 = first1;
const auto begin2 = first2;
auto CombineData = [](const DataType& d1, const DataType& d2)
{
return DataType{d1.intervalStart, (d1.data+d2.data)};
};
for (; first1 != last1; ++destBegin)
{
if (first2 == last2)
{
return std::copy(first1, last1, destBegin);
}
if (first1->intervalStart == first2->intervalStart)
{
*destBegin = CombineData(*first1, *first2);
++first1; ++first2;
}
else if (first1->intervalStart < first2->intervalStart)
{
if (first2 > begin2)
*destBegin = CombineData(*first1, *(first2-1));
else
*destBegin = *first1;
++first1;
}
else
{
if (first1 > begin1)
*destBegin = CombineData(*first2, *(first1-1));
else
*destBegin = *first2;
++first2;
}
}
return std::copy(first2, last2, destBegin);
}
答案 1 :(得分:1)
您想要的搜索模型中 search
本身是关键值的对象。
<tr ng-repeat="data in someFile | filter:search.XXXX | orderBy:'name'">
XXXX是您尝试搜索的内容的属性名称。无论你有search.Guid
/ search.Name
,无论你有什么。