通过工厂对象问题的角度单张标记循环

时间:2016-03-22 16:31:20

标签: javascript angularjs loops leaflet angular-leaflet-directive

我正在设置angular-leaflet-directive并试图让我的标记加载,但它们不会通过循环。但是,当我将数组记录到控制台时,它会出现。有什么我想念的吗?我应该把每个i作为一个对象吗?这是plunkr

请耐心等待。我在学。长时间潜伏,第一次海报。我无法绕过这个。这是我得到的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/board_row_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/photo" />

            <TextView
                android:id="@+id/board_row_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Trap" />


        </LinearLayout>


    </android.support.v7.widget.CardView>


</LinearLayout>

这不起作用。

https://plnkr.co/edit/nOtI9WLbIsjm5Y8tvkU0?p=preview 我的基础是:http://plnkr.co/edit/evaQpqGZUz39Y7MNqbo7?p=preview

先谢谢

1 个答案:

答案 0 :(得分:0)

一些事情,$scope.productData包含您想要迭代的数组,而不是$scope.productData.products。此外,您可以使用数组来添加标记对象,而不是对象,并立即将其附加到范围。 $scope.markers = []。这样你就不必增加密钥等。这里是更新后的控制器:

myapp.controller('PredictionCtrl', [
            '$http', '$scope', 'ProductData',
    function($http,   $scope,   ProductData) {
        $scope.productData = ProductData;
        $scope.markers = [];
        angular.forEach($scope.productData, function(product) {
            $scope.markers.push({
                lat: product.location.lat,
                lng: product.location.lng,
                message: "aaaa",
                focus: false,
                draggable: false
            });
        });
        angular.extend($scope, {
            vegas: {
                lat: 36.175,
                lng: -115.136389,
                zoom:  10
            }
        });
    }
]);

关于Plunker的一个工作示例:https://plnkr.co/edit/O6pAPwRG9v7D1zReAdZL?p=preview