变量绑定在Angularjs中的字符串

时间:2015-12-07 08:55:00

标签: javascript angularjs ionic-framework

我有一个很长的字符串文本,我有@标志前面的我想要替换的值。注意:生成长文本,并且它在文本文件中,在我读取文件后,我将它放在如下变量中:

$scope.text = "example @by goes @you";

我已经让他们说""和"你"变量,我将如何简单地应用它,以便在视图文本中获得正确的值?我该怎么做?

我可以创建自定义过滤器并搜索@by和@you并替换值或类似技术,但也许有一些简单的方法,我不知道在这种情况下角度使用。感谢

3 个答案:

答案 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

http://plnkr.co/edit/GDXhSVxyDn8zeNK9HR3u?p=preview

答案 2 :(得分:0)

这是一个简单的JavaScript。我不知道这与Angular有什么关系。

$scope.name = 'John';
$scope.age = 25;
$scope.text = 'My name is ' + $scope.name + ' and I\'m ' + $scope.age + ' years old';