我有一个很长的字符串文本,我有@标志前面的我想要替换的值。注意:生成长文本,并且它在文本文件中,在我读取文件后,我将它放在如下变量中:
$scope.text = "example @by goes @you";
我已经让他们说""和"你"变量,我将如何简单地应用它,以便在视图文本中获得正确的值?我该怎么做?
我可以创建自定义过滤器并搜索@by和@you并替换值或类似技术,但也许有一些简单的方法,我不知道在这种情况下角度使用。感谢
答案 0 :(得分:2)
为什么一次又一次地在$ 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;
}
}]);
答案 1 :(得分:1)
如果我理解正确你想要这个。我创建了一个plnkr供你检查。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) { $scope.name = 'World';
$scope.text = "example @by goes @you"; });
app.filter('byfilter',function(){ return function(input,by,you){
return input.replace('@by',by).replace('@you',you);
} })
{{text|byfilter:'furkan':'ahmet'}}
例如,furkan去了ahmet
答案 2 :(得分:0)
这是一个简单的JavaScript。我不知道这与Angular有什么关系。
$scope.name = 'John';
$scope.age = 25;
$scope.text = 'My name is ' + $scope.name + ' and I\'m ' + $scope.age + ' years old';