10

I have a simple string array coming from a server:

[{"things":["me", "my"]}]

In my page, to display the array I have:

{{things}}

And it prints:

["me", "my"]

How do I control the printing, for instance, if I want to eliminate the brackets and quotes?

Daniel
  • 3,541
  • 3
  • 33
  • 46
bmw0128
  • 13,470
  • 24
  • 68
  • 116

3 Answers3

18

You can implement a scope function to display arrays as comma separated strings like shown in this fiddle.

$scope.array = ["tes","1","2","bla"];

$scope.arrayToString = function(string){
    return string.join(", ");
};

Now you can call this function within the template:

{{arrayToString(array)}}

Update

You can also use the join() method of arrays directly within the template without using an extra function inbetween as displayed within the updated fiddle.

{{array.join(", ")}}
Daniel
  • 3,541
  • 3
  • 33
  • 46
9

I think you'll want ngRepeat for something like:

<div class="list" ng-repeat="thing in things">
  {{ thing }}
</div>
thataustin
  • 2,035
  • 19
  • 18
4

You can also create custom angular filter optionally with some advanced formatting:

module.filter('formatArray', ['OptionalInjection', function(OptionalInjection) {
  return function(value) {
    if (!angular.isArray(value)) return '';
    return value.map(OptionalInjection.formatter).join(', ');  // or just return value.join(', ');
  };
}])

Then in html just write {{yourArrayValue | formatArray}}.

icl7126
  • 5,740
  • 4
  • 53
  • 51