问题描述
在我的Angular应用程序中,我显示了清单项目列表。 在此页面上,有一个表格可以过滤或执行搜索。 该表单提交给当前路线模板/页面的相同URL,但在URL中附加get参数以执行过滤器/搜索。 即/#/库存和/#/库存?keywords = widgetname
这是基本路线...
myApp.config(function($routeProvider) {
$routeProvider
.when('/inventories', {
templateUrl: '/inventories.html',
controller: 'inventoriesController'
})
});
我知道我可以针对具有特定参数的可变参数(例如/#/ inventories / 12)的路由执行以下示例操作,如下所示:
.when('/inventories/:inventory_id', {
templateUrl: function(params) { return '/inventories/' + params.inventory_id + '.html'},
controller: 'inventoryController'
})
但是,对于像/#/ inventories这样的路由,我该怎么办?keywords = widgetname&warehouse = 1&min_qty = 5,该路由在url字符串中包含我所有的过滤器参数? 如何在路由中容纳url GET参数?
我尝试过类似的操作,但不起作用...
.when('/inventories?:get_params', {
templateUrl: function(params) { return '/inventories?' + params.get_params},
controller: 'inventoryController'
})
我知道我可以尝试通过将范围内的结果数组绑定到ng-repeat或类似的东西来尝试使用$ http服务并与json一起工作,但是我宁愿仅重新获取从url返回经过过滤的结果的模板。 这可能吗?
1楼
您应该能够从params属性访问查询参数,就像常规路由参数一样。
如果您有URL /inventories?keywords=widgetname的价值params.keywords因此应该是'widgetname' 。
我写了一个来证明这一点。
我仅使用template进行了测试,但是我确信它可以与templateUrl 。