48

angularJS で単純に文字列を分割できるかどうかを知りたかったのです。私は私の

 $scope.test = "test1,test2";

私のコントローラーと私の見解では、そのようなことをしたかった

{{test[0] | split(',')}}
{{test[1] | split(',')}}

input と ng-change がコントローラーで関数を呼び出して、文字列または ng-list を使用して何かを分割することについて多くのことを見てきましたが、私の場合は何も機能しません。

すべてにthx。

4

4 に答える 4

92

その機能をフィルターにラップすることをお勧めします。これにより、すべてのコントローラーに mySplit 関数を配置する必要がなくなります。例えば

angular.module('myModule', [])
    .filter('split', function() {
        return function(input, splitChar, splitIndex) {
            // do some bounds checking here to ensure it has that index
            return input.split(splitChar)[splitIndex];
        }
    });

ここからは、当初の意図どおりにフィルターを使用できます

{{test | split:',':0}}
{{test | split:',':0}}

詳細はhttp://docs.angularjs.org/guide/filterを参照してください(thanks ross)

Plunkr @ http://plnkr.co/edit/NA4UeL

于 2013-07-03T13:13:09.720 に答える
49

Thxみんな、私は最終的に解決策を見つけました。これは本当に基本的なものです..私のコントローラーには

$scope.mySplit = function(string, nb) {
    var array = string.split(',');
    return array[nb];
}

そして私の見解では

{{mySplit(string,0)}}
于 2013-07-03T12:50:27.873 に答える
35

次のようなことを試すことができます:

$scope.test = "test1,test2";
{{test.split(',')[0]}}

これで、試行中に「test1」が表示されます{{test.split(',')[0]}}

試行中に「test2」が表示されます{{test.split(',')[1]}}

ここに私のplnkrがあります:

http://plnkr.co/edit/jaXOrZX9UO9kmdRMImdN?p=preview

于 2015-04-16T08:25:01.557 に答える
2

これを試すことができます:

$scope.testdata = [{ 'name': 'name,id' }, {'name':'someName,someId'}]
$scope.array= [];
angular.forEach($scope.testdata, function (value, key) {
    $scope.array.push({ 'name': value.name.split(',')[0], 'id': value.name.split(',')[1] });
});
console.log($scope.array)

このようにして、後で使用するためにデータを保存し、次のように ng-repeat を使用してアクセスできます。

<div ng-repeat="item in array">{{item.name}}{{item.id}}</div>


これが誰かの
お役に立てば幸いです。Plunker リンク:こちら
すべてのクレジットは、上記の回答から @jwpfox および @Mohideen ibn Mohammed に送られます。

于 2016-10-31T12:23:20.533 に答える