[英]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.