我正在构建一个存储客户端的应用程序(使用express,node和angular),并且能够查看其信息。为每个客户端分配一个id密钥。我创建了一个链接,以便在单击客户端名称时,它会转到类似的URL:client/{{client.id}}
。我想提取这个参数,id,所以我可以过滤客户端并只显示具有该id的那个。这是我的express.js,我找到参数id并在控制台中打印:
// express stuff
app.param('id', function (req, res, next, id) {
console.log(req.params.id);
next();
});
app.get('/client/:id', routes.clientpage);
现在,我看到在控制台日志中打印了id - 但是,使用Angular,如何将此参数注入过滤器?这是我的想法,但我显然错了:
<ng-repeat="client in clients | orderBy:'id' | filter:{id:{{$req.params.id}}} | limitTo: 1"/>
答案 0 :(得分:2)
你可以通过一些url解析表达式来做到这一点:
//in controller
$scope.clientId = document.location.href.split('client/')[1];
//in template
<ng-repeat="client in clients | orderBy:'id' | filter:{id:clientId} | limitTo: 1"/>
这适用于myapp.com/example/client/46235
等网址,但myapp.com/example/client/46235/getsmth
可能会失败,因此您可能需要使用其他解决方案: