在ng-repeat

时间:2016-07-15 16:54:41

标签: javascript angularjs angularjs-ng-repeat

我只是想替换作为ng-repeat一部分的项中的空字符串,所以我可以将它用作div元素的id。适用于第一个空白区域。我想要一个全局替换并尝试类似/ / g的东西,但是代码中的引号搞砸了它或者我做得不对。

我试过这个

<div ng-repeat="list in list">
        <div id="{{list.name.replace(' ','_');}}" ></div>

2 个答案:

答案 0 :(得分:3)

我建议您创建一个function并在您的视图中调用它。

这是代码段正在运行:

&#13;
&#13;
angular.module('app', [])
  .controller('mainCtrl', function($scope) {
    $scope.list = [
       {
          "name": "noempties"
       },
       {
          "name": "a empty string"
       },
       {
          "name": "more empties a a a a a"
       }
    ];
  
    $scope.replace_chars = function(obj) {
      return obj.name.replace(/\s/g, '_');
    };
  });
&#13;
<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
  </head>

  <body ng-controller="mainCtrl">
    <div ng-repeat="lst in list track by $index">
        <!-- The ng-bind was used only to show how it was after replace -->
        <div id="{{replace_chars(lst)}}" ng-bind="'div id: ' + replace_chars(lst)"></div>
    </div>   
  </body>

</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用ng-bind

<div id="checkText(lst.name);" ng-bind="checkText(lst.name);"></div>
控制器中的

$scope.checkText = function(text) {
    return text.replace(' ','_');
  };