簡體   English   中英

有條件地將查詢字符串附加到角度href

[英]Conditionally append a query string to an angular href

我正在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>

我怎樣才能實現我想做的事情?

最好為控制器中的url制作一個模型,而不是像這樣做,它也會避免許多$ watch綁定,因此性能更好,更干凈

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

在控制器中:

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

我在Controller中進行URL構造。

HTML

<a ng-href="getQueryUrl()">Click here!</a>

Controller.js

$scope.getQueryUrl = function getQueryUrlFn(){
   return "/foo/bar?query=abc";
}

要回答您的具體問題,您的嘗試無效,因為您在其他雙引號中使用了雙引號"" <a>更改為以下內容,它將起作用:

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

但是,我同意其他答案 - 有時在控制器中生成一個值(在這種情況下,URL)更好更清晰,特別是如果你想圍繞這個值建立一個單元測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM