在使用ng-repeat指令时,我无法找到删除角度表达式中子字符串的解决方案。
控制器在外部javascript文件中,html如下。
function myController($scope, $http){
$http.get('http://localhost:3000/people.json').
success(function(data){
$scope.persons = data;
});
}

<table ng-controller="myController" class="table table-striped table-hover">
<thead class="text-center">
<th>Name</th>
<th>ID</th>
<th>Address</th>
</thead>
<tbody>
<tr ng-repeat="person in persons" class="text-center">
<td>((person.name}}</td>
<td>{{person.id}}</td>
<td>{{person.address}}</td>
</tr>
</tbody>
</table>
&#13;
localhost:3000 / people.json页面有几百个JSON对象:
[ { 姓名:&#34; John Smith&#34;, id:12345, 地址:&#34;地址:789 Broadway St&#34; },
... ]
我的问题:剥离“地址”的最有效和/或最简单的方法是什么:&#39;地址值中的子字符串?我没有写访问people.json页面的权限。
答案 0 :(得分:5)
向控制器添加功能。
之类的东西$scope.stripAddr = function(address) {
return address.substring(5);
}
并将您的HTML更改为
<td>{{stripAddr(person.address)}}</td>
请原谅和我的javascript中的错误我一直使用coffescript但我希望你明白这个想法
答案 1 :(得分:0)
使用可能是最佳方式的过滤器。你可以在任何地方重用那个过滤器,你想要删除一些匹配的字符串,就像我们使用addr
一样:
<强> HTML 强>
<tr ng-repeat="person in persons" class="text-center">
<td>((person.name}}</td>
<td>{{person.id}}</td>
<td>{{person.address}}</td>
</tr>
<强> JS 强>
.filter('matchreplace',function() {
return function(value, matchstring){
return value.split(matchstring).pop()
}
}
);
感谢。
答案 2 :(得分:0)
尝试
<td>{{person.address.substring(5)}}</td>