我正在尝试打印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
的指令,它确实具有=
表单标记See this code=
表示您喜欢隔离内部的方式绑定,因为您必须在该属性中提供作用域变量引用。
因为您提供了范围参考,所以markers0
在哪里起作用,
但是,当您在{{}}
中提供插值时,该属性会像markers="markers{{ $index }}"
一样失败
为了优雅地处理此问题,我希望您创建一个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>
关于javascript - AngularJS-引起语法错误的双花括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32076937/