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
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.