我试图创建一个"传单标记"使用角度指令。出于设计目的,我们将演示文稿和模型分开,以便不同的人可以在应用程序的不同部分上工作。我的问题,更有可能的是,更多的是"范围"问题而不是传单"问题。我尝试传递一个要在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。
任何人都可以帮我弄清楚发生了什么吗?
答案 0 :(得分:2)
&#39; auto&#39;编译弹出消息(来自传单指令)使用根范围。 因此,您需要将响应estacoes分配给根范围:
promiseEstacoes.then(function(estacoes) {
$rootScope.estacoes = estacoes.estacoes;
...
}
答案 1 :(得分:2)
使用最新版本的angular-leaflet-directive,您可以指定用于消息呈现的范围:
$scope.markers.push({
lat: estacao.latitude,
lng: estacao.longitude,
getMessageScope: function() { return $scope; }
message: "<popup estacao='estacoes[" + i + "]'></popup>"
});