javascript - 有条件地将查询字符串附加到 Angular href

标签 javascript angularjs

我正在 AngularJS v1.2.16 中构建一些链接,如下所示:

<a ng-href="/foo/{{id}}/t/{{list[m].id}}/{{id2}}/{{otherId}}">Click here!</a>

效果很好。

现在我有一个查询参数 query 如果它存在,我想追加到末尾。

我试着这样做:

<a ng-href="/foo/{{id}}/{{otherId}}{{ query ? '?q=' + query : "" }}">Click here!</a>

我最终得到以下结果,因为 Angular 只是将标签的全部内容渲染到链接中,如下所示:

<a href="/foo/2/4%7B%7B%7B%20query%20?%20%27?q=%27%20+%query%20:">Click here!</a>

我怎样才能实现我想做的事情?

最佳答案

在 Controller 中为 url 创建一个模型比那样做更好,它还会避免许多 $watch 绑定(bind),因此性能更好,更清洁

<a ng-href="{{myUrl}}">Click here!</a>

在 Controller 中:

$scope.myUrl = 'foo/'+id+'/.../'+(qry ? ...)+'...';

关于javascript - 有条件地将查询字符串附加到 Angular href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512763/

相关文章:

javascript - Angularjs Controller 不工作,抛出错误(新手)

javascript - AngularJS 指令中的单元测试私有(private)函数

android - 在 iOS 和安卓上以 ionic 删除本地存储

javascript - 类型错误 : Cannot read property 'toLocaleLowerCase' of undefined

类中的 JavaScript/jQuery 变量作用域 (this)

javascript - 在特定状态下调试浏览器的建议和技巧?

javascript - TypeScript 和 Angular 1.x - 我可以安全地一起使用吗?

php - 如何将 JavaScript 变量传递给 PHP?

javascript - google maps DrawingManager绘制的矩形不触发mousemove事件

javascript - 在单击标签时使用 $index 不起作用