如何拆分字符串并在`ng-repeat'中使用

时间:2015-08-17 10:35:15

标签: angularjs angular-filters

从后端,我得到一个字符串construction,apply - 这意味着两个单词在一起。

现在我需要将它们分成两个单词,我需要使用ng-repeat。我创建了filter来做到这一点。它将字符串拆分为长度为2的数组,但如何在ng-repeat中使用它?

这是我的代码:

    <div class="column design">
//app.Phase here is : `construction,apply`
                    <span ng-repeat="value in activeApp.Phase || commaBreak">{{$index}}</span> //instead of index i would like to show the word.
                </div>

我的过滤器:

angular.module("tcpApp")
    .filter("commaBreak",

function () {

    return function (value) {
        if (!value.length) return;

        return value.split(',');
    }
});

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

这是:

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', ['$scope', function($scope) {
    $scope.name = "construction,apply";
}]);

myApp.filter("commaBreak", 

    function () {

        return function ( value ) {

            if( !value.length ) return;

            return value.split(',');

        }

});

在html部分,您需要使用单个OR。

<div ng-controller="MyCtrl">
    <p ng-repeat="value in name | commaBreak">{{value}}</p>
</div>

以下是工作示例:http://jsfiddle.net/HB7LU/16459/

答案 1 :(得分:2)

我认为这应该有效:

        <div class="column design">
            <span ng-repeat="value in activeApp.Phase.split(',') || commaBreak">{{$index}}</span> //instead of index i would like to show the word.
        </div>

http://jsfiddle.net/HB7LU/16458/