Je voulais savoir si je pouvais 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 à propos de l'entrée et de 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.
merci à tous.
Vous voudrez peut-être intégrer cette fonctionnalité dans un filtre, de cette manière, vous n'aurez 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 prévu à 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 les gars, 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 ça:
$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 pouvez 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 sauvegarder les données pour une utilisation ultérieure et y 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 à partir de la réponse ci-dessus.