Comment diviser une chaîne avec angularJS

Je voulais savoir si je peux diviser une chaîne simplement en angularJS. J'ai mon

$scope.test = "test1,test2"; 

Dans mon contrôleur et à mon avis, je voulais faire quelque chose comme ça

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

J'ai vu beaucoup de choses sur l'entrée et ng-change appeler une fonction dans le contrôleur qui divise la chaîne ou quelque chose avec ng-list mais rien ne fonctionne dans mon cas.

Thx à tous.

Vous voudrez peut-être envelopper cette fonctionnalité dans un filtre, de cette façon, vous n'avez pas à mettre la fonction mySplit dans tous vos contrôleurs. Par exemple

 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]; } }); 

À partir de là, vous pouvez utiliser un filtre comme vous l'avez pensé à l'origine

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

Plus d'infos sur http://docs.angularjs.org/guide/filter (merci ross)

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

Thx guys, j'ai finalement trouvé la solution, vraiment basique … Dans mon contrôleur, j'ai

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

Et à mon avis

 {{mySplit(string,0)}} 

Vous pouvez essayer quelque chose comme ceci:

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

Maintenant, vous obtiendrez " test1 " pendant que vous essayez {{test.split(',')[0]}}

Et vous obtiendrez " test2 " pendant que vous essayez {{test.split(',')[1]}}

Voici mon plnkr

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

Vous pourriez essayer ceci:

 $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) 

De cette façon, vous pouvez enregistrer les données pour une utilisation ultérieure et l'accéder en utilisant un ng-repeat comme ceci:

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

J'espère que cela a aidé quelqu'un,
Lien Plunker: ici
Tous les crédits vont à @jwpfox et @Mohideen ibn Mohammed de la réponse ci-dessus.