[英]AngularJS: ng-click after createElement('div')
在使用AngularJS加載應用程序后,我使用createElement('div')
創建了一些div
(使用Ajax createElement('div')
。 在每個div
,我設置ng-click
elem.setAttribute("ng-click","nameValue='"+data.name+"'");
並在HTML中看到
<div ng-click="nameValue='Simone'">Click</div>
但它不起作用。 它可以工作,如果我把它放在html中,但如果我用Ajax動態創建div它不起作用。
編輯:謝謝你的回復。 我試着更好地解釋我的“項目”(我正在研究AngularJS)
在我的應用程序中,使用ngRoute我加載主頁模板。
然后在HomePageController
我調用一個函數來在Ajax連接之后創建post。
直到這里一切都好。
解決我的問題:
app.controller('HomePageController',['$scope', function($scope){
....
createPostWithAjax($compile)
....
}]);
//ajax function
function createPostWithAjax($compile){
//after ajax connection
$compile("div.postCreateAfterCompilation")($scope);
}
這是對的? 或者我完全改變了方法?
這不是有角度的方式。 當您像這樣編寫HTML時,Angular並不知道它並且不會“評估”它。
您需要編譯它才能通過angular進行處理:
$compile( elem )($scope)
但是如果你給我們更多關於它的背景信息,我們可以幫助你以Angular的方式做到這一點 。 您可能不必以這種方式編寫HTML,而是依賴於特定的指令。 這只是你想了解更多,如果你對這個解決方案沒問題,那就沒關系。
或者您可以查看此示例
function compile(element){
var el = angular.element(element);
$scope = el.scope();
$injector = el.injector();
$injector.invoke(function($compile){
$compile(el)($scope)
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.