【发布时间】:2015-01-23 19:49:59
【问题描述】:
我有这段代码,我想将数组数据推送到一个范围内,以便在地图上显示图钉。它显示第一个引脚,但不显示其他引脚。
运行时出现错误:错误: [$parse:syntax] 语法错误:令牌“.0”是表达式 [markers.0] 开始的第 8 列的意外令牌在 [.0]。
我的代码是:
$scope.markers = [];
var pos = [
{
lat: 51.918374,
lng: 19.594210
},
{
lat: 51.018374,
lng: 19.094210
},
{
lat: 52.518374,
lng: 19.594210
},
{
lat: 52.018374,
lng: 19.694210
}];
pos.forEach(function(value){
$scope.markers.push({
lat: value.lat,
lng: value.lng,
message: "aaaa",
focus: false,
draggable: false
});
});
尝试使用 angular.forEach:
var pos = [
{
lat: 51.918374,
lng: 19.594210
},
{
lat: 51.018374,
lng: 19.094210
},
{
lat: 52.518374,
lng: 19.594210
},
{
lat: 52.018374,
lng: 19.694210
}];
var log = [];
angular.forEach(pos, function(value, key) {
this.push({
lat: value.lat,
lng: value.lng,
message: "aaaa",
focus: false,
draggable: false
});
}, log);
console.log(log);
$scope.markers = log;
HTML:
<leaflet layers="map" center="map.center" overlay="map.overlays" markers="markers" ng-if="map"></leaflet>
任何想法我做错了什么?谢谢
【问题讨论】:
-
看起来不错,你能发布一个演示来重现这个问题吗?另外,尝试使用
map,例如$scope.markers = post.map(...) -
你应该使用
angular.forEachAPI -
还有angular.forEach,你应该试试...
-
@tomepejo 为什么 OP @tutchmedia 应该使用
angular.forEach? -
大家好,感谢您的帮助。我试过 angular 和同样的错误......见上面的代码
标签: javascript arrays angularjs angularjs-scope