如何使用AngularJs将参数从URL注入HTML

时间:2016-05-23 18:47:35

标签: html angularjs node.js express

我正在构建一个存储客户端的应用程序(使用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"/>

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可能会失败,因此您可能需要使用其他解决方案:

  • angular UI router用于客户端应用程序naviagtion
  • 在服务器生成的模板的某些部分输出此ID。