在网址参数中插值{{}}的角度,有没有办法清理网址?

时间:2019-06-04 08:24:58

标签: javascript angularjs angular1.6

我们遇到一个极端的问题,即外部应用程序要求在指向我们网站的url请求中出现特定的url参数:

const express = require('express'); const app = express(); const PORT = 5000; app.get('/', (req, res) => { res.sendFile('index.html', {root: __dirname }); }); app.get('/version', (req, res) => { const myVersion = 'My version is 0.5'; res.json(myVersion); }); app.listen(PORT, () => { console.log(`Server running on PORT ${PORT}`); });

这是屏幕截图:

Example error of {{}}

有时,url参数将无法正确呈现,从而导致url变为:

https://stackoverflow.com/questions/ask?abc=123

我们在应用程序上运行了angular程序,它无法解析它,从而导致网页出现不必要的错误。

angular可以在应用程序到达网址之前对其进行编码吗?

详细信息

  • 角度1.6.6

当前解决方案

我们有一个临时的https://stackoverflow.com/questions/ask?abc={{}}重定向解决方案,但是如果我们解决了问题的根源,相信会更好。

我们已经做了大量的阅读工作,以了解如何更改模板标签,但这是一个巨大的解决方法。

预期

我们不使用任何自定义网址变量。我们希望它在未解析nginx

时不会引发错误并正常运行

3 个答案:

答案 0 :(得分:1)

您需要将参数绑定在[queryParams]="{ 'abc':'test' }"

由于需要传递对象,因此可以在打字稿中动态创建对象。

尝试这样:

HTML

<a [routerLink]="['https://stackoverflow.com/questions/ask']" [queryParams]="getQueryParam()">Link</a>

TS

  getQueryParam() {
    var queryParam = {};
    queryParam['abc'] = this.some_variable;
    return queryParam;
  }

答案 1 :(得分:0)

问题可能与此有关:

https://github.com/angular/angular.js/commit/5930b8ee27e441aa4422d9174dcc7eb7db30e400

这是Angular的已知问题。

答案 2 :(得分:0)

根据研究,我们发现Drupal使用称为request_uri()的函数来渲染表单,该函数不对输出进行编码。因此,操作url在页面上加载时会导致角度错误。

我们发现的解决方案是添加重定向。