javascript - Angularjs 中带有变量绑定(bind)的字符串

标签 javascript angularjs ionic-framework

我有一个很长的字符串文本,我在要替换的值前面有 @ 符号。注意:生成了长文本,它在文本文件中,在我读取文件后,我将其保存在如下变量中:

$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/

相关文章:

javascript - 如何处理原型(prototype)上的 "left"和 "right"键?

javascript - 如何修复 jQuery 从 html 输入元素输出相同的文本?

javascript - 使用 LocalStorage 和 AngularJS 的缓慢应用程序

html - 无法清除 Ionic 中输入文本字段中的文本

ionic-framework - 从 ionic 启动画面中删除加载微调器

angularjs - ng-cordova 文件传输插件中的文件上传错误代码 1

JavaScript 全局作用域

javascript - 如何将特定国家/地区的 map 加载到 OpenStreetMap 中?

angularjs ngHide与ngShow延迟

angularjs - 在 UI-Grid 标题中实现多列分组的任何更好的方法?