将 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]);
}
}
});
});
我已经创建了地图并将其与我的 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]);
}
}
});
});