我的网址结构:
/json/feed?car=${cars}&colour=${color}&model=VW
我想用${}
我可用的var
,var cars
等替换var colors
中的内容,但我不知道如何我可以使用Angular轻松完成这项工作。
会是这样的:
$scope.newString = oldString.replace("${cars}","cars");
工作正常,还是有%s
方式使用JavaScript执行此操作?
哪个是Angular更好的方法?
答案 0 :(得分:2)
替换为变量而不是字符串。
$scope.newString = oldString.replace("${cars}",$scope.cars);
请查看此plunkr以供参考。
您可以简单地链接.replace
&#39>。
$scope.new = old.replace('${cars}', $scope.car).replace('${color}', $scope.color).replace('${model}', $scope.model);
答案 1 :(得分:1)
http://plnkr.co/edit/cFeD3tLOYWcPVwMAFQG3?p=preview
How to replace all occurrences of a string in JavaScript?
您可以使用angularjs的interpolate服务。插值服务适用于角度js表达式,其应由{{}}代替{}进行替换。
app.controller('MainCtrl', function($scope,$interpolate) {
$scope.name = 'World';
function escapeRegExp(string) {
return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function replaceAll(string, find, replace) {
return string.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
$scope.interpolate = function ( ) {
var context = { cars :"myCars", color:"red"};
var url = "/json/feed?car=${cars}&colour=${color}&model=VW";
var t1 = replaceAll(url,"{","{{");
var url2 = replaceAll(t1,"}","}}");
var exp = $interpolate(url2);
console.log(exp(context));
}
$scope.interpolate();
});
输出:/ json / feed?car = $ myCars& color = $ red& model = VW