如果不容易解决ta,我遇到了问题。在我的数据库中,我在组织中有一个表,其中一些可能是“隐藏的”。除非输入管理员提供的唯一代码,否则您可能无法在列表中看到它们。如果用户仅键入代码,则该组织可能会出现在列表中。
我的列表现在看起来像这样:
<a class="item item-avatar" ng-repeat="lugar in organizations_all | filter:search" ng-click="mostrarAreas(lugar.id)" ng-if="organizations_filter !=''" ng-show="!lugar.hide">
<img image-lazy-src="{{lugar.photo}}" style="border-radius: 0 !important;">
<button class="button button-icon icon ion-plus-circled" ng-click="agregarLugar(lugar.id,lugar.private);$event.stopPropagation()" style="float: right;"></button>
<h2>{{lugar.name}}</h2>
<p class="icon ion-ios-locked" style="font-size:20px;" ng-show="lugar.private"></p>
</a>
Y mi json viene asi:
{ "Count" : 5,
"Organization" : [ { "code" : "",
"hide" : false,
"id" : "1",
"name" : "Odebret Advisors Ltda.",
"private" : false
},
{ "code" : "",
"hide" : false,
"id" : "2",
"name" : "MOP Ruta 5 Sur (SCL - Talca)",
"private" : false
},
{ "code" : "",
"hide" : false,
"id" : "3",
"name" : "MOP Ruta 5 Norte (SCL - Los Vilos)",
"private" : false
},
{ "code" : "",
"hide" : false,
"id" : "4",
"name" : "Lixsys SpA",
"private" : true
},
{ "code" : "lxspa",
"hide" : true,
"id" : "5",
"name" : "Prueba Oculta",
"private" : false
}
],
"status" : 1
}
正如您所看到的,如果为true,则存在“隐藏”字段,必须隐藏该组织,并且“代码”字段是唯一要查找的代码,必须输入FULL,而如果我们按名称过滤,则可以区分1点上。
答案 0 :(得分:2)
只需使用&amp;&amp; ng-show中的陈述如此
如果您有
,请输入您的搜索内容ng-model="searchInput"
并在控制器中
$scope.searchInput
然后在ng-show上你可以做
ng-show="!lugar.hide && lugar.code == searchInput"
然后它只会显示hide是否设置为false以及是否已在代码中键入。或者如果你想显示它,即使hide是真的,但是你可以在代码中输入
ng-show ="!lugar.hide || lugar.code == searchInput"
答案 1 :(得分:1)
编辑:这是假设代码包含在filter:search
参数中,因为您没有指定用户输入代码的位置。
您最好创建自己的过滤器:
.filter('esVisible', function () {
return function (lugares, search) {
var lugaresVisibles = [];
for (var i = 0, ii = lugares.length; i < ii; i++) {
if (!lugares[i].hide) {
lugaresVisibles.push(lugares[i]);
} else if (lugares[i].code == search) {
lugaresVisibles.push(lugares[i]);
}
}
return lugaresVisibles;
};
});
如果你正在使用另一个JS实用程序库,例如LazyJS,你可以很容易地简化for循环。
最后你的ngRepeat看起来像这样:
ng-repeat="lugar in organizations_all | esVisible:search"
注意:未经测试,但希望你能得到这个想法。