2015-06-05 60 views
0

我在一個動態創建html的應用程序中工作。我們開始使用angular,現在我們試圖使用angular.element()創建html並在其中定義一個控制器。編譯通過javascript動態插入的角度控制器?

angular.element("<div ng-controller='myController'/>"); 

的問題是,因爲它是創建頁面呈現之後(當用戶點擊某處,例如),插入在HTML不與角工作,就像普通的HTML。我該如何解決它?

+2

'angular.element()'返回jqlite的包裝對象。您將不得不使用'$ compile'服務 – Samir

+0

謝謝@Samir是全局角度類可用的$ compile服務嗎?像角。$編譯?還是應該以某種方式將它包含在創建元素的腳本中?創建元素的腳本不在控制器或指令內... –

+0

不能在全局範圍內使用。這是角度服務。你將不得不通過你的控制器注入。 – Samir

回答

0

我用這樣的方式:

var template = angular.element(YOU_HTML_IN_STRING); 
var linkFn = $compile(template); 
var element = linkFn($scope); 
angular.element(CSS_SELECTOR).html('').append(element); 

如果您沒有訪問到$編譯。你可以看看這裏: how can we use $compile outside a directive in Angularjs