2017-08-01 59 views
2

我需要在點擊添加動態模板,我已經使用:如何在動態html模板中添加ui-sref?

var action_template=''; 
app.controller('EventCtrl',function($rootScope){ 
    action_template = action_template +'<ul><li><a ui-sref="/root/authenticate"><img src="default.png"></a></li></ul>';     
    $rootScope.template=action_template; 
}); 

在HTML:我已經使用ngSanitize

<ul> 
     <li ng-bind-html="template"></li> 
</ul> 

模板是完全追加,但沒有HREF鏈接。

我做錯了什麼?還是有任何解決方案做同樣的事情?

主要問題是無法添加任何角度指令,如ng-click,ng-href,ui-sref等。 但添加$ sce.trustAsHtml後,它添加了ui-sref但未添加任何超鏈接。

提示將是可觀的。

感謝

+0

有你使用$ rootScope而不是$範圍的理由? – kauffee000

+0

嘗試$ rootScope.template = $ sce.trustAsHtml(action_template);.不要忘記在你的控制器 – Vivz

回答

2

我覺得你在你的控制器忘記trustAsHtml(您可以在運行後段看到,該UI-SREF是存在於源): -

var app = angular.module("myApp", []); 
 
var action_template=''; 
 
app.controller("myCtrl", function($scope,$rootScope,$sce) { 
 
    
 
    action_template = action_template +'<ul><li><a ui-sref="/root/authenticate">Link</a></li></ul>';     
 
    $rootScope.template=$sce.trustAsHtml(action_template); 
 
});
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    
 
<ul> 
 
     <li ng-bind-html="template"></li> 
 
</ul> 
 
</div>

+0

中注入$ sce,它的工作效果非常好。現在感謝 – uday214125

2

您需要信賴您的HTML,使用$sce,請嘗試以下代碼

var jimApp = angular.module("mainApp", []); 
 
jimApp.controller('EventCtrl',function($rootScope, $sce, $scope){ 
 
    var action_template=''; 
 
    action_template = action_template +'<ul><li><a ui-sref="/root/authenticate"><img src="default.png" alt="Default image">Link</a></li></ul>';     
 
    $scope.template=$sce.trustAsHtml(action_template); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="mainApp" ng-controller="EventCtrl"> 
 
<ul> 
 
     <li ng-bind-html="template"></li> 
 
</ul> 
 
</div>

+0

,ui-sref存在,但它沒有添加任何href鏈接,爲什麼?請看我最新的問題。 – uday214125

+0

@ user7390851我不明白你添加$ sce.trustAsHtml它給這樣的後意思 – byteC0de

+0

,但它應該是這樣 意味着汽車的href將被自動添加。 – uday214125