将 ng-click 添加到传单弹出 onEachFeature 函数

Adding ng-click to leaflet popup onEachFeature function

我已经创建了地图并将其与我的 geojson 连接起来 api.Basically 我希望 link 使用 ng-click 弹出每个标记。 像这样放置简单的 html 是行不通的,因为我必须编译它:

layer.bindPopup("<button ng-click='()'>+feature.properties.title+</button>");

这就是我想要做的。这是那段代码。我收到“错误:需要 [ng:areq] 参数 'scope' “

$http.get("http://markers.json").success(function(data, status) {
angular.extend($scope, {
geojson: {
  data: data,
  onEachFeature: function(feature, layer, scope) {
    var template = "<button class='button button-clear button-royal' ng-click='aa()')>" +feature.properties.title +"</button>";
    var linkFn = $compile(template);
    var content = linkFn(scope);
    layer.bindPopup(content);
 },
}
});
});

我对 angular 和 js 还很陌生,所以我想我在这里遗漏了一些明显而愚蠢的东西。谢谢!

您不需要将 scope 作为参数添加到您的 onEachFeature 方法中。该范围已在变量 $scope:

中可用
$http.get("http://markers.json").success(function(data, status) {
    angular.extend($scope, {
        geojson: {
            data: data,
            onEachFeature: function(feature, layer) {
                var template = "<button class='button button-clear button-small button-royal' ng-click='aa()'>" +feature.properties.title +"</button>";
                var linkFn = $compile(template);
                var content = linkFn($scope);
                layer.bindPopup(content[0]);
            }
        }
    });
});

示例:http://plnkr.co/edit/5cMWuhQeJLg5zkX9hVYK?p=preview