您可以在動態獲取數據上使用angular嗎? 我有一個現有的應用程序,其中大部分內容是在ajax調用後由javascript呈現的。 所以我有這個div是由ajax獲取數據,然後由JavaScript呈現填充。 那麼,在所有這些由ajax獲取的大量html中,如果我在這些元素之一上使用ng-app,它似乎不起作用。 對初始請求中提取的html元素(在ajax請求之前)執行相同的操作。動態獲取數據上的angular.js
所以這裏是代碼:
文件:test.php的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" ng-app>
<head>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="ang_app.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url: "test2.php"
}).success(function(data) {
$('#content').html(data);
});
});
</script>
<body>
<h2>This is an app</h2>
<div ng-app ng-controller="StatsCtrl2">StatsCtrl2</div>
<div id="content"></div>
</body>
</html>
文件test2.php:
<?php
echo '<div style="background-color:green;" ng-app ng-controller="StatsCtrl">Should be StatsCtrl</div>';
文件ang_app.js:
function StatsCtrl($scope){
alert("function StatsCtrl");
}
function StatsCtrl2($scope){
alert("function StatsCtrl2");
}
好吧,運行這個應用程序,我看到了人ert爲「StatsCtrl2」。但「StatsCtrl」內的警報從不顯示應用程序。難道我做錯了什麼?
你的問題的簡短答案是肯定的。如果您需要更詳細的幫助,則需要提供一些代碼或許多更多詳細信息。 – Blunderfest 2014-09-05 14:58:39
問題在於數據是由ajax通過執行xmlrpc請求獲取的。數據是作爲純xml返回的。Javascript會通過這些數據並構建html結構。我在代碼的「靜態」部分中添加了angular.js和controller.js,這是初始請求返回的代碼。你的意思是它應該工作。但是,當頁面已經加載(在Ajax請求之前)ng-app將不會被發現,因爲它會出現在xmlrpc請求完成後,並在JavaScript呈現HTML後。你仍然認爲它應該工作? – user3726562 2014-09-05 15:04:10
添加你的代碼樣本,你將能夠得到更好的答案。 – Blunderfest 2014-09-05 15:09:25