我有一个很长的字符串文本,我在要替换的值前面有 @ 符号。注意:生成了长文本,它在文本文件中,在我读取文件后,我将其保存在如下变量中:
$scope.text = "example @by goes @you";
让我们说“by”和“you”变量,我将如何简单地应用它以便在 View 文本中获得正确的值?我该怎么做?
我可以创建自定义过滤器并搜索@by 和@you 并替换值或类似技术,但也许有一种我不知道在这种情况下angular 使用的简单方法。谢谢
最佳答案
为什么要一遍又一遍地在 $digest 中执行它,而您可以轻松地转换来自 te 服务器的数据,并且只需修改一次?
我创建了一个 Plunker是谁做的。
angular.module('myApp', []);
angular.module('myApp').service('DataService', ['$http', '$q', function($http, $q) {
function getData() {
return $q(function(resolve, reject) {
$http.get('./response.json').then(function(response) {
resolve(response.data.value);
});
});
}
this.getData = getData;
}]);
angular.module('myApp').controller('MyController', ['DataService', function(DataService) {
var mv = this;
mv.data = 'retrieving data';
var filtered = false;
var filterValues= {
'@first_name': 'Hans',
'@last_name': 'Pock',
'@age': '79'
};
DataService.getData().then(function(response) {
mv.data = filter(response, filterValues);
});
function filter(text, values) {
var result = text;
angular.forEach(values, function(value, key){
var regexp = new RegExp(key, 'g');
result = result.replace(regexp, value);
});
return result;
}
}]);
关于javascript - Angularjs 中带有变量绑定(bind)的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34129671/