我对Angular很新,我在列表中有一个ng-repeat,我点击了一些标签进行过滤。这是标签的样子
<a href="javascript:;" ng-click="$parent.zonefilter=zone.name" class="ng-binding"><i class="icon-chevron-right"></i> {{ zone.name }}</a>
以下是清单:
<div ng-repeat="obj in objs | filter: zonefilter" class="col-lg-4 ng-scope" ng-controller="MonitorCtrl" ng-animate=" 'animate' ">
<div class="panel panel-primary panel-active">
<a href="/{{obj.id}}" target="_blank" class="text-center frame frame_white" ng-class="{black:'frame frame_black', white:'frame frame_white'}[obj.background]">
{{obj.title}}
</a>
</div>
</div>
它工作正常,但我希望能够通过网址直接点击此过滤器。如何设置像/ edit / obj#lobby这样的网址,将zonefilter设置为大厅?
我在文档中看到的所有路线都是重定向到一个全新的模板,这不是我想要的。
我确定通过问这个问题我看起来很愚蠢。
谢谢!
答案 0 :(得分:1)
听起来你真正想要的是通过另一个项目更容易实现的状态管理:https://github.com/angular-ui/ui-router
您还可以在定义路径时尝试使用resolve
上的$routeProvider
属性,以便将特定过滤器注入当前控制器,然后可以在范围中使用
$routeProvider.when( 'lobby', {
controller: 'RoomController',
resolve: {
zonefilter: 'lobby'
}
});
myApp.controller( 'RoomController', function( zonefilter ) {
// zonefilter === 'lobby'
});
这也可能有用,但我肯定会考虑使用ui-router这样的东西,因为它会更清洁,更容易。