2015-02-06 66 views
1

我有一个指令,<flightpoint></flightpoint>通过mapquest库注入角度指令。没有检测到指令

我需要通过map.addShape()将此指令添加到Mapquest's map

但是,角度不知道地图上的新指令,因此它不处理它(它的空白html)。

MQA.withModule('htmlpoi', function() { 
    var poi=new MQA.HtmlPoi({lat:39.743943, lng:-105.020089}); 
    poi.setHtml("<flightpoint></flightpoint>", -6, -20, 'mqa_nostyle_htmlpoi'); 
    var x = routeMap.addShape(poi); 
}); 

有几件事情我已经试过.....

$编译

MQA.withModule('htmlpoi', function() { 
    var poi=new MQA.HtmlPoi({lat:39.743943, lng:-105.020089}); 
    poi.setHtml($compile("<flightpoint></flightpoint>")($scope), -6, -20, 'mqa_nostyle_htmlpoi'); 
    var x = routeMap.addShape(poi); 
    $scope.$apply(); 
}); 

结果: [对象的对象]显示在地图而不是我的指令。

2. angular.bootstrap()

MQA.withModule('htmlpoi', function() { 
    var poi=new MQA.HtmlPoi({lat:39.743943, lng:-105.020089}); 
    poi.setHtml("<flightpoint></flightpoint>", -6, -20, 'mqa_nostyle_htmlpoi'); 
    var x = routeMap.addShape(poi); 
    angular.bootstrap(document, ['app']); 
}); 

结果: “错误:应用程序已与该元素 '文件' 自举”

如果我能后,编译它被补充说那也可以。

+0

您是否记得在脚本标记中包含指令的javascript文件?我以前忘了... – cjkenn 2015-02-06 17:13:45

+0

好想法。是。如果我把这个指令放在它的页面中,它只在注入时才起作用。 – 2015-02-06 17:18:22

回答

0

这是一个马虎,但它为我工作。

我可以添加一个虚拟标签并在其中插入编译的角度。

MQA.withModule('htmlpoi', function() { 
    var poi=new MQA.HtmlPoi({lat:39.743943, lng:-105.020089}); 
    poi.setHtml("<span id=\"insertDirectiveHere\"></span>", -6, -20, 'mqa_nostyle_htmlpoi'); 
    routeMap.addShape(poi); 

    // now that you've added the span we can insert compiled angular on that tag 
    var domElem = document.getElementById('insertDirectiveHere'); 
    domElem.innerHTML = "<flightpoint></flightpoint>"; 
    $compile(domElem)($scope); 
});