无法使用angularjs指令(和部分指令)获取传单弹出窗口
我正试图写一个指令来填充传单标记弹出窗口。我一直把头撞在墙上,想弄清楚我做错了什么。我的弹出窗口总是空的 以前有人成功地做到了这一点吗 下面是一个plunker,显示了问题: marker.bindpoop(e[0]);而不是marker.bindPopup(clonedElement[0]) 试试这个:无法使用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
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
。此外,这仅适用于标记,而不适用于路径等。