2013-12-05 4 views
1

У меня есть вопрос относительно Углового и Углового UI-маршрутизатора. Я хотел бы поместить фильтр в навигационную панель, которая может меняться в зависимости от текущего маршрута. Я попытался реализовать это поведение с помощью Angular-UI Router, но ui-router не поддерживает обмен одним и тем же контроллером с несколькими видами. В их документации затрагивается эта тема. См.: https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views.Угловой фильтр с различным видом

Я создал plunker с желаемым поведением: http://plnkr.co/edit/W0UgeW

Onto мой вопрос: Есть ли способ, я могу выполнить это поведение? Я не хочу делать это с помощью Angular-ui Router, если это вообще возможно без использования расширений, я бы предпочел сделать это именно так.

Спасибо,

Барт

+0

Я думаю, вам придется использовать методы паба углов главного/суб. Возможно, лучшим способом будет создание службы для связи между контроллером навигатора и контроллером маршрута. –

ответ

1

Вы можете создать собственный фильтр, как:

myapp.filter('myfilter', function() { 
    return function(items, combo) { 
    var filtered = []; 
    console.log(items, combo); 
    angular.forEach(items, function(item) { 
     if(item.name == combo){ 
     filtered.push(item); 
     } 

    }); 

    return filtered; 
    }; 
}); 

Теперь передать опцию комба для просмотра мы можем написать:

$rootScope.theFilter = ''; 

Нашей таблицу будет выглядеть так:

<table id="searchTextResults"> 
    <tr><th>Name</th><th>Phone</th></tr> 
    <tr ng-repeat="friend in friends | myfilter:theFilter"> 
    <td>{{friend.name}}</td> 
    <td>{{friend.phone}}</td> 
    </tr> 
</table> 

См Демо Plunker

+0

Спасибо. Я принял ваш ответ, но предпочел бы не использовать $ rootScope для этого. Пока я буду реализовывать его, как вы предлагали, пока я не найду лучший способ. –

+1

вы также можете сохранить его в сервисе –

Смежные вопросы