簡體   English   中英

如何連接js和angularjs表達式?

[英]How to CONCATENATE js and angularjs expressions?

我正在使用onClick js函數重定向到另一個頁面。 但是我想將查詢字符串包括到給定的URL中。 查詢字符串包含一個我從angularjs表達式獲取的ID。 我在組合這兩個表達式時遇到了麻煩。

碼:

<div class="col-md-1 col-sm-1 padding10 left-border" onclick="window.location=RootURL+'pages/contest/contestdetail.ui.php?cID=83'">{{x.MemberPosition}}</div>

在上面的代碼中,我想將cID = 83替換為cID = x.ContestID。 我正確獲取了{{x.ContestID}}的值。

我建議這樣做

控制器:

var app = angular.module('App', []);

app.constant('RootUrl', function() {
    return '/';
});

app.controller('YourCtrl', ['$scope', '$location', 'RootUrl' function($scope, $location, RootUrl) {
    $scope.gotoContest = function(id) {
        var url = RootUrl + 'pages/contest/contestdetail.ui.php?cID=' + id;
        $location.url(url);
    };
}]);

視圖:

<div class="col-md-1 col-sm-1 padding10 left-border" ng-click="gotoContest(x.ContestID)"></div>

Angular中 ,您應該使用$window而不是window

對瀏覽器窗口對象的引用。 雖然window在JavaScript中全局可用,但由於它是全局變量,因此會引起可測試性問題。 在角度上,我們總是通過$ window服務引用它,因此它可能會被覆蓋,刪除或模擬以進行測試

$location代替window.location

$ location服務解析瀏覽器地址欄中的URL(基於window.location),並使該URL可用於您的應用程序。 地址欄中URL的更改會反映到$ location服務中,而$ location所做的更改會反映到瀏覽器地址欄中。

順便說一句,如果您想直接在視圖中使用$location ,請記住將$location綁定到控制器的作用域,例如

.controller('myController', function($scope, $location) {
  $scope.$location= $location;
});

暫無
暫無

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

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