我有一个关于Angular和Angular-UI路由器的问题。我想在一个bootstrap导航栏中放置一个过滤器,它可以根据当前路径而变化。我试图用Angular-UI路由器实现这种行为,但是ui-router不支持跨多个视图共享同一个控制器。在他们的文档中触及了这个主题。请参阅:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views。
我创建了一个具有所需行为的plunker:http://plnkr.co/edit/W0UgeW
在我的问题上:有什么方法可以实现这种行为吗?我不喜欢用Angular-ui路由器做这件事,如果不使用扩展就可以了,我宁愿这样做。
谢谢,
巴特
答案 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;
};
});
现在通过combo选项查看我们可以写:
$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