角度小叶自定义标记(使用角度指令)

时间:2014-12-16 12:25:27

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

我试图创建一个"传单标记"使用角度指令。出于设计目的,我们将演示文稿和模型分开,以便不同的人可以在应用程序的不同部分上工作。我的问题,更有可能的是,更多的是"范围"问题而不是传单"问题。我尝试传递一个要在angular指令中使用的对象,同时我在控制器中的" $ scope"上添加标记。该指令,""在我的应用程序中,是我的"消息中唯一的标记"要在地图中显示的每个标记对象的属性。它有一个属性" estacao"葡萄牙语与" station"相同。

所以,我的代码在这里:

        angular.forEach($scope.estacoes, function(estacao) {
            $scope.markers.push({
                lat: estacao.latitude, 
                lng: estacao.longitude, 
                message: "<popup estacao='estacoes[" + i + "]'></popup>"
            });
            i++;
        });

http://plnkr.co/edit/evaQpqGZUz39Y7MNqbo7?p=preview

问题是我的&#34; estacao&#34;处理指令时为null。

任何人都可以帮我弄清楚发生了什么吗?

2 个答案:

答案 0 :(得分:2)

&#39; auto&#39;编译弹出消息(来自传单指令)使用根范围。 因此,您需要将响应estacoes分配给根范围:

promiseEstacoes.then(function(estacoes) {
   $rootScope.estacoes = estacoes.estacoes;
   ...
}

http://plnkr.co/edit/OkQcth2zNrEdO2rgwBv8?p=preview

答案 1 :(得分:2)

使用最新版本的angular-leaflet-directive,您可以指定用于消息呈现的范围:

$scope.markers.push({
    lat: estacao.latitude, 
    lng: estacao.longitude,
    getMessageScope: function() { return $scope; }
    message: "<popup estacao='estacoes[" + i + "]'></popup>"
});