Angularjs $compile(自定义指令)生成的HTML不';t绑定{{values}}

Angularjs $compile(自定义指令)生成的HTML不';t绑定{{values}},angularjs,angularjs-directive,angularjs-scope,mapbox,angularjs-compile,Angularjs,Angularjs Directive,Angularjs Scope,Mapbox,Angularjs Compile,我想动态添加角度自定义指令,但是$compile(directive)生成的指令没有双向绑定 这是我的简化问题:我正在使用MapBox,我想使用标记弹出窗口的指令来显示标记的标题。MapBox希望将HTML作为字符串放入弹出窗口中,因此我的想法是传递一个$compiled指令,类似于$compile(“”)($scope.HTML()) 它用它的模板替换指令,但是{{values}}没有被解决 我有这样的东西来创建弹出窗口 map.featureLayer.on('layeradd', func

我想动态添加角度自定义指令,但是$compile(directive)生成的指令没有双向绑定

这是我的简化问题:我正在使用MapBox,我想使用标记弹出窗口的指令来显示标记的标题。MapBox希望将HTML作为字符串放入弹出窗口中,因此我的想法是传递一个$compiled指令,类似于
$compile(“”)($scope.HTML()

它用它的模板替换指令,但是{{values}}没有被解决

我有这样的东西来创建弹出窗口

map.featureLayer.on('layeradd', function(e) 
 {
  var marker = e.layer;
  var popupContent =  ctrl.createPopup(marker);
  // popupContent should be HTML as String
  marker.bindPopup(popupContent);
 });
ctrl.createPopup(marker)
调用控制器的函数,该函数执行以下操作:

this.createPopup = function(marker)
{
 var popup = "<mapbox-marker-popup"
            +"      title = "+marker.feature.properties.title
            +"</mapbox-marker-popup>";
 // should return HTML as String
 return  ($compile(popup)($scope).html());
}
无论如何。。。mapboxMarkerPopup不工作。标题显示为
{{title}}

[更新2-{{title}}未解决]


以下是您需要返回
元素而不是返回该元素的
html
的。仅返回html永远不会带有角度双向绑定。通过使用编译对象,可以保持绑定工作

代码

this.createPopup = function(marker) {
    var popup = "<mapbox-marker-popup" + 
      "title = '" + marker.feature.properties.title + "'" 
      + "</mapbox-marker-popup>";
    return ($compile(popup)($scope)[0]);
};
this.createPopup=函数(标记){

var popup=“如果有一个plunker或摆弄您的代码会很好吗?好的,完成了!我在问题中添加了链接,我发现我必须做
$compile(“”)($scope).html()
。但是,指令的内容没有绑定,所以它仍然不起作用。我已经更新了我的小提琴。@DeLac检查我添加的答案great!完美..谢谢!我不太清楚$compile是如何工作的。@DeLac我很想解释一下..但是它已经在很多地方解释过了,所以我添加了一个链接我的答案..你可以参考它。。
this.createPopup = function(marker) {
    var popup = "<mapbox-marker-popup" + 
      "title = '" + marker.feature.properties.title + "'" 
      + "</mapbox-marker-popup>";
    return ($compile(popup)($scope)[0]);
};