我使用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}}的值。
答案 0 :(得分:1)
我建议这样做
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>
答案 1 :(得分:0)
在Angular中,您应该使用$window
代替window
对浏览器窗口对象的引用。窗口是全球性的 在JavaScript中可用,它会导致可测性问题,因为它是 全局变量。在角度我们总是通过它来引用它 $ window服务,因此可能会被覆盖,删除或嘲笑 测试
或$location
代替window.location
$ location服务解析浏览器地址栏中的URL(基于 在window.location上)并使URL可用于您的应用程序。 地址栏中URL的更改将反映到$ location中 服务和$ location的更改会反映到浏览器中 地址栏。
BTW,如果你想直接在视图中使用$location
,请记住将$location
绑定到控制器的范围,如
.controller('myController', function($scope, $location) {
$scope.$location= $location;
});