javascript - Transform array attribute in AngularJS -
i have plain array in javascript:
$scope.myarray = [{ "coords" : { "lat" : 0, "long" : 0 } }, { "coords" : { "lat" : 1, "long" : 1 } }, { "coords" : { "lat" : 2, "long" : 2 } }];
then, have angular-google-maps module, draw these points paths screen.
<ui-gmap-google-map center='map.center' zoom='map.zoom'> <ui-gmap-polyline path="myarray" stroke="p.stroke" visible='p.visible' geodesic='p.geodesic' fit="false" editable="p.editable" draggable="p.draggable" icons='p.icons'> </ui-gmap-polyline> </ui-gmap-google-map>
this directive, however, expects path array of positions, this:
$scope.myarray = [{ "lat" : 0, "long" : 0 }, { "lat" : 1, "long" : 1 }, { "lat" : 2, "long" : 2 }];
is there way transform between first array 1 ui-gmap-polyline expects? thinking writing filter, i'm not sure if that's best way. positions added (and possibly changed) myarray, , want google map update along this. way watch myarray changes , create new array every time feed map, there seems simple solution i'm missing.
e.g.: path="myarray | filter:coords"
-> there way filter array return fields of each element?
edit: myarray synchronised $firebasearray (https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray). array updated firebase api automatically when backend updated (out of control).
you can use map
arr.map(function(e) { return e.coords; });
demo
var arr = [{ "coords": { "lat": 0, "long": 0 } }, { "coords": { "lat": 1, "long": 1 } }, { "coords": { "lat": 2, "long": 2 } }]; arr = arr.map(function(e) { return e.coords; }); console.log(arr); document.getelementbyid('output').innerhtml = json.stringify(arr, 0, 2);
<pre id="output"></pre>
Comments
Post a Comment