在我的一个角度应用程序中,当我在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/angular.js:5959 OPERATORS["/"]@http://loclhost/jcp_standardwork/secure/scripts/vendor/angular/angular.js:5959 binaryFn/<@http://loclhost/jcp_standardwork/secure/scripts/vendor/angular/angular.js:6292
有人能告诉我一些解决方法吗?
答案 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>
这对我有用!