2016-09-27 86 views
1

我工作在我的angularjs项目上。如何将锚元素附加到div?

我有这个字符串在我的控制器:

"<a href="http://waze.to/?navigate=yes&ll=72.0274, 564.7814" target="_blank">Open In Waze</a>" 

而且我有这个div在我的模板:

<div id="wazeArea" ng-init="editor.appandWazeLink(editor.siteId)"><i class="fa fa-car" aria-hidden="true"></div> 

如何可以追加锚元素上面div来使其点击?

+0

你想让整个div可点击,或者你想添加链接里面的div?后者将只是像$(“#wazeArea).html(字符串); – Danmoreng

+0

谢谢你的答案我简要更新亩问题你可以看到它吗? – Michael

+0

顺便说一句,你可能想要编码的URL在你的' 'element。 –

回答

1

这让我感到很沮丧。您应该能够像这样将字符串名称嵌入到其中:

var htmlStringFromController = "<a href="http://waze.to/?navigate=yes&ll=72.0274, 564.7814" target="_blank">Open In Waze</a>"; 

然后从那里调用它。

<div id="wazeArea" ng-init="editor.appandWazeLink(editor.siteId)">{{htmlStringFromController}}</div> 

这里的问题是角度不想注入原始的HTML,对不对?所以你可以使用$ sce来实现它(AngularJS : Insert HTML into view

但问题是,你可以只将URL注入到已存在于div中的锚标记中吗?像这样:

// controller code: 
var URLFromController = "http://waze.to/?navigate=yes&ll=72.0274, 564.7814"; 

然后在视图中使用这个,只有在URLFromController为真时才显示它。

<div id="wazeArea" ng-init="editor.appandWazeLink(editor.siteId)"> 
    <a ng-if="URLFromController" href="{{URLFromController}}" target="_blank">Open in Waze</a> 
</div> 
+0

我同意,如果它是一个角度的应用程序,做它的角度! –

0

的document.getElementById( “wazeArea”)的appendChild(在单引号锚元件'“)。

您可以在制作html字符串时使用单引号。它可以允许里面的双引号,而不需要转义字符

0
// 1. get the parent of the div 
// 2. append the anchor to it 
$("#wazeArea").parent().append($(string)); 
// 3. move the div inside of the anchor by appending it 
$("#id_of_a").append($("wazeArea"));