Eu queria saber se posso dividir uma string simplesmente em angularJS. eu tenho meu
$scope.test = "test1,test2";
no meu controlador e na minha opinião, eu queria fazer algo parecido
{{test[0] | split(',')}} {{test[1] | split(',')}}
Eu vi muita coisa sobre input e ng-change chamando uma function no controller que divide a string ou algo assim com ng-list mas nada funciona no meu caso.
thx para todos.
Você pode querer envolver essa funcionalidade em um filtro, desta forma você não tem que colocar a function mySplit em todos os seus controladores. Por exemplo
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]; } });
A partir daqui, você pode usar um filtro como pretendia originalmente
{{test | split:',':0}} {{test | split:',':0}}
Mais informações em http://docs.angularjs.org/guide/filter (obrigado ross)
Plunkr @ http://plnkr.co/edit/NA4UeL
Thx pessoal, eu finalmente encontrei a solução, realmente básica .. No meu controle eu tenho
$scope.mySplit = function(string, nb) { var array = string.split(','); return array[nb]; }
e na minha opinião
{{mySplit(string,0)}}
Você pode tentar algo assim:
$scope.test = "test1,test2"; {{test.split(',')[0]}}
Agora você receberá ” test1 ” enquanto tenta {{test.split(',')[0]}}
e você receberá ” test2 ” enquanto tenta {{test.split(',')[1]}}
aqui está meu plnkr:
Você poderia tentar isso:
$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)
Dessa forma, você pode salvar os dados para uso posterior e acessá-los usando um ng-repeat assim:
{{item.name}}{{item.id}}
Espero que isso tenha ajudado alguém
Link Plunker: aqui
Todos os créditos vão para @jwpfox e @Mohideen ibn Mohammed da resposta acima.