如何在Angular中动态替换值?

时间:2015-07-17 11:43:17

标签: javascript angularjs

我的网址结构:

/json/feed?car=${cars}&colour=${color}&model=VW

我想用${}我可用的varvar cars等替换var colors中的内容,但我不知道如何我可以使用Angular轻松完成这项工作。

会是这样的:

$scope.newString = oldString.replace("${cars}","cars");

工作正常,还是有%s方式使用JavaScript执行此操作? 哪个是Angular更好的方法?

2 个答案:

答案 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