Я хочу иметь заполнитель, например, <No result>
когда результат фильтра возвращается пустым. Может ли кто-нибудь помочь? Я даже не знаю с чего начать ...
HTML :
<div ng-controller="Ctrl">
<h1>My Foo</h1>
<ul>
<li ng-repeat="foo in foos">
<a href="#" ng-click="setBarFilter(foo.name)">{{foo.name}}</a>
</li>
</ul>
<br />
<h1>My Bar</h1>
<ul>
<li ng-repeat="bar in bars | filter:barFilter">{{bar.name}}</li>
</ul>
</div>
JS :
function Ctrl($scope) {
$scope.foos = [{
name: 'Foo 1'
},{
name: 'Foo 2'
},{
name: 'Foo 3'
}];
$scope.bars = [{
name: 'Bar 1',
foo: 'Foo 1'
},{
name: 'Bar 2',
foo: 'Foo 2'
}];
$scope.setBarFilter = function(foo_name) {
$scope.barFilter = {};
$scope.barFilter.foo = foo_name;
}
}
jsFiddle : http://jsfiddle.net/adrn/PEumV/1/
Спасибо!
javascript
html
angularjs
Адриан Гунаван
источник
источник
Ответы:
Доработка подхода, при которой требуется указать фильтр только один раз:
Скрипка
источник
Вот трюк с использованием ng-show
HTML:
jsFiddle: http://jsfiddle.net/adrn/PEumV/2/
источник
Взято из этого официального документа, вот как они это делают:
Затем используйте результаты как массив
Полный фрагмент:
источник