Javascript 用json值替换angularjs中的部分字符串

Javascript 用json值替换angularjs中的部分字符串,javascript,json,angularjs,Javascript,Json,Angularjs,我试图用JSON值替换$中包含的字符串 例如: 我有json $scope.data = { name: "Some Name", user: "User Name", designation: "Designation", fullName:"User Full Name" } 我有一根绳子: $scope.str="User name of $user$ is $name$ and designation is $designation$"; 是否有任何角度方法可以直接

我试图用JSON值替换
$
中包含的字符串

例如:

我有json

$scope.data = {
  name: "Some Name",
  user: "User Name",
  designation: "Designation",
  fullName:"User Full Name"
}
我有一根绳子:

$scope.str="User name of $user$ is $name$ and designation is  $designation$";
是否有任何角度方法可以直接替换字符串中的变量

我尝试使用循环键并进行验证,它正在工作,但json中有100多个键,而字符串中可能会使用不到20个键

我希望有更好的方法来提高性能。

1)。String.prototype.replace。实际上,用纯Javascript和方法实现这一点是有意义的,它将更加有效。例如:

$scope={};
$scope.data={
名字:“某个名字”,
用户:“用户名”,
名称:“名称”,
全名:“用户全名”
};
$scope.str=“$User$的用户名为$name$,名称为$designation$”;
$scope.str=$scope.str.replace(/\$(\w+)\$/g,函数(a,b){
返回类型$scope.data[b]!==“未定义”?$scope.data[b]:“”;
});

警报($scope.str)这不是纯角度的,但如果您使用Lodash(参与许多项目的实用程序库)进行更改,则有模板方法。 您可以轻松地配置占位符语法

_.templateSettings.interpolate = /\$([\s\S]+?)\$/g;
var compiled = _.template('User name of $user$...');
compiled({ 'user': 'Foo' });