[英]AngularJS - Double curly brackets causing Syntax Error
我正在尝试打印ng-repeat的$ index,但是它给了我:
Error: [$parse:syntax] Syntax Error: Token '{' is an unexpected token at column 8 of the expression [markers{{ $index }}] starting at [{{ $index }}].
这是我的代码:
<div ng-repeat="place in places">
<leaflet id="map{{ $index }}" defaults="defaults" center="center" markers="markers{{ $index }}"></leaflet>
</div>
但是更改为可以:
<div ng-repeat="place in places">
<leaflet id="map{{ $index }}" defaults="defaults" center="center" markers="markers0"></leaflet>
这很奇怪……为什么会这样?
查看它具有=
表单标记的leaflet
指令, 请参见此代码
=
表示您喜欢隔离内部的方式绑定,因为您必须在该属性中提供作用域变量引用。
因为您提供了范围参考,所以markers0
可以正常工作的地方,
但是,当您在属性中提供{{}}
插值会失败,就像您做的一样,例如markers="markers{{ $index }}"
为了优雅地处理此问题,我希望您创建一个markers
数组,该markers
数组将具有多个值,您的数据将变成这样
$scope.markers = [{...},{...},{...},...]
代替
$scope.marker0 = {}, $scope.marker1 = {}, $scope.marker2 = {}, ....
这样您就可以通过使用其$index
轻松指出这一点
标记
<div ng-repeat="place in places">
<leaflet id="map{{ $index }}" defaults="defaults" center="center"
markers="markers[$index]"></leaflet>
</div>
我遇到了类似的问题,但是指令不同。 我所做的一项工作实际上是在大括号之前和之后放置一个单引号
<div ng-repeat="place in places">
<leaflet id="map{{ $index }}" defaults="defaults" center="center" markers="markers'{{ $index }}'"></leaflet>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.