Javascript 字符串替换为参数值

Javascript 字符串替换为参数值,javascript,html,angularjs,Javascript,Html,Angularjs,我试图用来自文本文件的格式化字母填充文本区域。这个文本文件包含像{{client.name}}和{{client.address}}这样的对象,我想用特定客户机属性的值替换它们。这是我目前掌握的代码 $scope.loadFlyer = function() { $http.get("/assets/clientwelcome.txt").then(function(res){ $scope.flyerdescription = res.data; $sc

我试图用来自文本文件的格式化字母填充文本区域。这个文本文件包含像
{{client.name}}
{{client.address}}
这样的对象,我想用特定客户机属性的值替换它们。这是我目前掌握的代码

$scope.loadFlyer = function() {
    $http.get("/assets/clientwelcome.txt").then(function(res){
        $scope.flyerdescription = res.data;
        $scope.flyerdescription = $scope.flyerdescription.replace(/{{client.name}}/g, $scope.client.name); 
  });
};
在此之前,我调用了客户表中的数据:

myApp.controller('ClientCtrl', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
$scope.clients = [];
$http.get('/client').success(function(data, status, headers, config) {
    $scope.clients = data;
    if (data == "") {
        $scope.clients = [];
    }
}).error(function(data, status, headers, config) {
    console.log("Ops: could not get any data");
});
这是我试图填充的字段:

<div class="form-group">
    <label class="control-label" for="flyer-description">Description</label>
    <textarea style="height:400px" class="form-control" id="flyer-description" ng-model="flyerdescription"></textarea>
</div>

描述

不幸的是,没有更换。我试图按照javascript文档中的格式设置替换,但没有成功。

根据下面的讨论编辑*

您有一个看起来像[{name:'Hank Aaron'},{name:'Sandy Koufax'},{name:'Bo Jackson'}]的客户机列表和一个模板字符串,其中包含一个值:{{client.name},您希望用客户机列表中的名称替换该值

myApp.controller('ClientCtrl', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
    $scope.clients = [];
    $http.get('/client').success(function(data, status, headers, config) {
        $scope.clients = data;
        if (data == "") {
            $scope.clients = [];
        }
    }).error(function(data, status, headers, config) {
        console.log("Ops: could not get any data");
    });

    $scope.loadFlyer = function() {
        $http.get("/assets/clientwelcome.txt").then(function(res){
            $scope.flyerdescription = res.data;
            $scope.descriptions = [];
            for(var i=0; i<$scope.clients.length; i++){
                $scope.descriptions[i].push($scope.flyerdescription.replace(/{{client.name}}/g,$scope.clients[i].name));
            }
        });
    };
}]);
myApp.controller('ClientCtrl'、['$scope'、'$http'、'$routeParams',函数($scope、$http、$routeParams){
$scope.clients=[];
$http.get('/client').success(函数(数据、状态、标题、配置){
$scope.clients=数据;
如果(数据==“”){
$scope.clients=[];
}
}).error(函数(数据、状态、标题、配置){
log(“Ops:无法获取任何数据”);
});
$scope.loadFlyer=函数(){
$http.get(“/assets/clientwelcome.txt”)。然后(函数(res){
$scope.flyerdescription=res.data;
$scope.descriptions=[];

对于(var i=0;iedited*根据下面的讨论

您有一个看起来像[{name:'Hank Aaron'},{name:'Sandy Koufax'},{name:'Bo Jackson'}]的客户机列表和一个模板字符串,其中包含一个值:{{client.name},您希望用客户机列表中的名称替换该值

myApp.controller('ClientCtrl', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
    $scope.clients = [];
    $http.get('/client').success(function(data, status, headers, config) {
        $scope.clients = data;
        if (data == "") {
            $scope.clients = [];
        }
    }).error(function(data, status, headers, config) {
        console.log("Ops: could not get any data");
    });

    $scope.loadFlyer = function() {
        $http.get("/assets/clientwelcome.txt").then(function(res){
            $scope.flyerdescription = res.data;
            $scope.descriptions = [];
            for(var i=0; i<$scope.clients.length; i++){
                $scope.descriptions[i].push($scope.flyerdescription.replace(/{{client.name}}/g,$scope.clients[i].name));
            }
        });
    };
}]);
myApp.controller('ClientCtrl'、['$scope'、'$http'、'$routeParams',函数($scope、$http、$routeParams){
$scope.clients=[];
$http.get('/client').success(函数(数据、状态、标题、配置){
$scope.clients=数据;
如果(数据==“”){
$scope.clients=[];
}
}).error(函数(数据、状态、标题、配置){
log(“Ops:无法获取任何数据”);
});
$scope.loadFlyer=函数(){
$http.get(“/assets/clientwelcome.txt”)。然后(函数(res){
$scope.flyerdescription=res.data;
$scope.descriptions=[];
对于(变量i=0;i

描述
//这是控制器
var app=angular.module('demoApp',[]);
app.controller('validationCtrl',函数($scope){
$scope.stringname='angular123456测试演示';
$scope.stringname=$scope.stringname.replace('test',“”);
});

描述
//这是控制器
var app=angular.module('demoApp',[]);
app.controller('validationCtrl',函数($scope){
$scope.stringname='angular123456测试演示';
$scope.stringname=$scope.stringname.replace('test',“”);
});

是的,另一个线程没有收到太多反馈,我觉得可以被替换。如果$scope.flyerdescription没有包含字符串,否则我怎么能用JSON数据替换这些字段呢?啊,我意识到我的错误,$scope.flyerdescription.replace(…)只返回替换后的字符串值,它不会修改原始字符串。您需要做的是通过调用$scope.flyerdescription=$scope.flyerdescription.replace(/{{client.name}}/g,$scope.client.name)捕获它;小心替换调用中的字符串,regexOkay不需要撇号,我会尝试一下。我尝试过了,没用——我已经用新代码更新了帖子。你能确认$scope.flyerdescription保存了文本文件中的数据吗?你可以调用console.log($scope.flyerdescription),然后在浏览器中打开f+12并导航到控制台。它应该打印出文本文件的内容是的,另一个线程没有收到太多反馈,我觉得可以替换。如果$scope.flyerdescription没有包含字符串,我怎么能用JSON数据替换这些字段呢?啊,我意识到我的错误$scope.flyerdescription.replace(…)只返回替换后的字符串值,它不会修改原始字符串。您需要做的是通过调用$scope.flyerdescription=$scope.flyerdescription.replace(/{{client.name}}/g,$scope.client.name)捕获它;小心替换调用中的字符串,regexOkay不需要撇号,我会尝试一下。我尝试过了,没用——我已经用新代码更新了帖子。你能确认$scope.flyerdescription保存了文本文件中的数据吗?你可以调用console.log($scope.flyerdescription),然后在浏览器中打开f+12并导航到控制台。控制台应打印出文本文件的内容
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
</head>
<body>
<div ng-app="demoApp" ng-controller="validationCtrl"  class="form-group">
    <label class="control-label" for="flyer-description">Description</label>
    <textarea style="height:100px" class="form-control" id="flyer-description" ng-model="stringname
"></textarea>
</div>
<script>
//This is controller
var app = angular.module('demoApp', []);
app.controller('validationCtrl', function($scope) {
    $scope.stringname = 'angular123456 test demo';
    $scope.stringname = $scope.stringname.replace('test', "");
});
</script>
</body>
</html>