Javascript 如何在Angular中动态替换值?
我的URL结构:Javascript 如何在Angular中动态替换值?,javascript,angularjs,Javascript,Angularjs,我的URL结构: /json/feed?car=${cars}&colour=${color}&model=VW 我想用我现有的JavaScriptvar替换${}中的内容(var cars,var colors,等等),但是我不确定如何使用Angular轻松做到这一点 我想: $scope.newString = oldString.replace("${cars}","cars"); 工作正常,还是有一种使用JavaScript的%s方法? 使用Angular哪种方法更好
/json/feed?car=${cars}&colour=${color}&model=VW
我想用我现有的JavaScriptvar
替换${}
中的内容(var cars
,var colors
,等等),但是我不确定如何使用Angular轻松做到这一点
我想:
$scope.newString = oldString.replace("${cars}","cars");
工作正常,还是有一种使用JavaScript的%s
方法?
使用Angular哪种方法更好?替换为变量而不是字符串
$scope.newString=oldString.replace(“${cars},$scope.cars”)代码>
请看一下这个以供参考
您可以简单地链接。替换
$scope.new = old.replace('${cars}', $scope.car).replace('${color}', $scope.color).replace('${model}', $scope.model);
替换为变量而不是字符串
$scope.newString=oldString.replace(“${cars},$scope.cars”)代码>
请看一下这个以供参考
您可以简单地链接。替换
$scope.new = old.replace('${cars}', $scope.car).replace('${color}', $scope.color).replace('${model}', $scope.model);
您可以使用angularjs的服务。Interpolate服务使用angular 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
您可以使用angularjs的服务。Interpolate服务使用angular 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
用{{}代替${}和你的作用域变量一起使用。URL实际上是在服务器发送的JS变量中返回给我的,因此我尝试更改变量的原因——这些是占位符标记。您必须像前面一样进行替换,只是替换为变量而不是字符串。请看答案。不要将${}与作用域变量一起使用{{}。URL实际上是在服务器发送的JS变量中返回给我的,因此我尝试更改变量的原因-这些是占位符标记。您必须像前面一样进行替换,只是替换为变量而不是字符串。查看答案。我将如何同时更新这两个值:$scope.newString=oldString.replace(“\${cars}”、“\${color}”、$scope.cars、$scope.color);工作正常?在我的情况下工作正常。我如何同时更新这两个值:$scope.newString=oldString.replace(“\${cars}”、“\${color}”、$scope.cars、$scope.color);工作好吗?我的案子做得很好。