1

我已经创建了地图并将其与我的 geojson api 连接起来。基本上我希望将每个标记弹出窗口与 ng-click 链接起来。像这样放置简单的 html 不会完成这项工作,因为我必须编译它:

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

这就是我想要做的。这是那段代码。我收到“错误:[ng:areq] Argument 'scope' is required”

$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 很陌生,所以我想我在这里遗漏了一些明显和愚蠢的东西。谢谢!

4

1 回答 1

4

您不需要将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

于 2015-12-11T06:12:53.293 回答