拆分在ng-repeat指令内创建的字符串(ng-model)

时间:2014-10-26 15:57:52

标签: javascript string angularjs split

我开始使用angularjs,并拥有此数据模型:

friends = [
    {name:'John**amine**allo'},
    {name:'Mary**aaa**mmm'},
    {name:'Mike**bb**kkk'}
]

我想将每个名字拆分为' **'创建名称表。

我不知道是否有更直接的方法可以做到这一点(可能在角度滤波器模块中使用了一些滤波器),但这是我到目前为止所尝试的:

 <table id="searchObjResults">
    <tr><th>Name</th></tr>
    <tr ng-repeat="x in friends">
      <td ng-repeat="y in x.split('**')">
        {{y}}
      </td>
    </tr>

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果name元素:

,则需要拆分x属性
<td ng-repeat="y in x.name.split('**')">{{y}}</td>

然而,这可能不是很好的想法你想要做什么。首先,您需要处理正确的表结构(正确的标头colspan值)。其次,最好渲染已处理的数据结构,而不是转换模板内的值。它只是使它变得过于复杂,更不用说使手表表达更慢。

演示:http://plnkr.co/edit/5PXTW1gjpKwg7e3S6hRM?p=preview

答案 1 :(得分:1)

您可以使用自定义过滤器指定分隔符:

<table id="searchObjResults">
<tr><th>Name</th></tr>
<tr ng-repeat="x in friends">
  <td ng-repeat="y in x.name | mysplit:'**'">
    {{y}}
  </td>
</tr>
</table>

JS:

app.filter('mysplit', function() {
  return function(data, sep) {
    return data.split(sep);
  }
});

Plunker