无法使用angularjs指令(和部分指令)获取传单弹出窗口

无法使用angularjs指令(和部分指令)获取传单弹出窗口,angularjs,angularjs-directive,leaflet,Angularjs,Angularjs Directive,Leaflet,我正试图写一个指令来填充传单标记弹出窗口。我一直把头撞在墙上,想弄清楚我做错了什么。我的弹出窗口总是空的 以前有人成功地做到了这一点吗 下面是一个plunker,显示了问题: marker.bindpoop(e[0]);而不是marker.bindPopup(clonedElement[0]) 试试这个: var directiveTag = $(document.createElement("search-results-map-marker-popup")); var compiledDir

我正试图写一个指令来填充传单标记弹出窗口。我一直把头撞在墙上,想弄清楚我做错了什么。我的弹出窗口总是空的

以前有人成功地做到了这一点吗

下面是一个plunker,显示了问题: marker.bindpoop(e[0]);而不是marker.bindPopup(clonedElement[0])

试试这个:

var directiveTag = $(document.createElement("search-results-map-marker-popup"));
var compiledDirective = $compile(directiveTag)(popupScope);

newMarker.bindPopup(compiledDirective[0]);

您可以在Angular传单指令中使用对角度内容的新支持:

var html = '<br><span ng-class="thumbsUpClass(item)" ' +
    'ng-click="addChoice(item,set)"><span class="popup-container"><span ' +
    'class="icon-stack thumbs-up-stack"><i class="icon-sign-blank ' +
    'icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>';

... 

$scope.markers.push( { lat: ...,
                       lng: ...,
                       message: html,
                       getMessageScope: function() { return $scope; },          
});
var html='
'; ... $scope.markers.push({lat:。。。, 液化天然气:。。。, 信息:html, getMessageScope:function(){return$scope;}, });
这很有效。你能解释一下原因吗?我想如果您想将元素附加到DOM,应该使用clonedElement。From docs:cloneAttachFn-如果提供了cloneAttachFn,那么link函数将克隆模板并调用cloneAttachFn函数,允许调用者在适当的位置将克隆的元素附加到DOM文档。cloneAttachFn在angular文档中被称为:cloneAttachFn(clonedElement,scope):“clonedElement-是传递给编译器的原始元素的克隆”,因此我假设该元素仍然没有被编译和链接。由于某些原因,这在angular 1.2中不再有效,控制器无法访问指令的getContent()。有什么想法吗?太棒了!我想知道为什么网站上没有例子。。。但是,
compileMessage
可能还必须在传递给插件最新版本中的
push
方法的对象中设置为
true
。此外,这仅适用于标记,而不适用于路径等。