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>