从angularjs中的特定位置删除和中断json中的数据

时间:2015-11-13 12:35:02

标签: javascript json angularjs

我的json看起来像这样(我不能改变它):

reactor.crash()

我正在显示:

Desc: First data - Second data

但我需要在“第一个数据”下显示“第二个数据”而不使用“ - ”

所以现在显示如下:

<div ng-repeat="b in a.Items">{{b.Desc}}</div>

我需要它像

<div>First data - Second data</div>

<div><p>First data</p><p>Second data</p></div>

如何打破并删除' - '?在angularjs中是否有选项或过滤器?

2 个答案:

答案 0 :(得分:1)

解决此问题的正确方法是在控制器中转换数据并将已翻译的数据附加到范围内。

但这是一个快速黑客:

<div><p>{{ b.Desc.split(' - ')[0] }}</p><p>{{ b.Desc.split(' - ')[1] }}</p></div>

答案 1 :(得分:1)

使用$ filter角度来表示它。在字符串没有“ - ”字符的情况下要小心很重要。因此建议使用$ filter

var app = angular.module("App", []);
app.controller('AppController', function($scope) {
   $scope.a = {Items:["XX-BBB", "CCC-AAA", "-VVV", "FFF-"]};
}).filter('splitValue', function() {
    var indexAllItens = 0;
    return function(input, index) {
       console.log(input + ' ' + index)
        var data = input.split('-'), str = '';
        if(data.length >= index)
            str = data[index];
        return str;
    };
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="App" ng-controller="AppController">
  <ul ng-repeat="b in a.Items">
     <li>{{b | splitValue:0}}</li> <li>{{b | splitValue:1}}</li>
  </ul>
</div>