从角度js ng-repeat变量中删除所有空格

时间:2014-03-11 14:09:49

标签: javascript angularjs

在我的一个角度应用程序中,当我在ng-repeat中传递键时,我将得到值。

此处 rowsdata 中的每个的值都为'my file1 data', 'my file2 data', 'my file3 data'

但我需要将其作为'myfile1data', 'myfile2data', 'myfile3data'

传递

当我使用rows.replace('''')时,它只删除第一个空格,如'myfile1 data', 'myfile2 data', 'myfile3 data'

<tr ng-repeat="data in datas"> 
  <td ng-repeat="rows in rowdatas">{{data[rows.replace(' ','')]}}</td>
</tr>

修改

但是当我使用

<td ng-repeat="rows in rowdatas">{{data[rows.replace(/ /g,'')]}}</td>

我得到了

Error: a is not a function OPERATORS["/"]@http://loclhost/jcp_standardwork/secure/scripts/vendor/angular/a‌​ngular.js:5959 OPERATORS["/"]@http://loclhost/jcp_standardwork/secure/scripts/vendor/angular/a‌​ngular.js:5959 binaryFn/<@http://loclhost/jcp_standardwork/secure/scripts/vendor/angular/angul‌​ar.js:6292 

有人能告诉我一些解决方法吗?

3 个答案:

答案 0 :(得分:6)

我发现最简洁的方法是创建一个过滤器:

angular.module('moduleFilters', []).filter('classy', function() {
  return function(text) {
    return String(text).replace(/\s*/mg, "-");
  };
});

我称我的是优雅的,因为在我的用例中,它是使变量对类有效。当我们压缩空格时,让我们打电话给你compress

然后在你的html中调用

<tr ng-repeat="data in datas"> 
    <td ng-repeat="rows in rowdatas">{{rows|compress}}</td>
</tr>

现在,您可以从导入该过滤器的任何位置调用compress过滤器。

答案 1 :(得分:3)

试试这个:

rows.replace(/ /g,'')
<tr ng-repeat="data in datas"> 
    <td ng-repeat="rows in rowdatas">{{rows.replace(/ /g,'')}}</td>
</tr>

行应该已经是列表项。有关替换检查的详细信息here;它实际上与棱角无关。

答案 2 :(得分:0)

<tr ng-repeat="data in datas"> 
  <td ng-repeat="rows in rowdatas">{{data[rows.split(' ').join('')]}}</td>
</tr>

这对我有用!