我試圖做我的第一次嘗試與angular.js和我有恢復網站的正確內容的問題。頁面內容通過AJAX接收(現在來自靜態數據,後者來自數據庫)。當我使用id =「content」的元素在指令ng-repeat中放置一個塊時,一切正常。結果是:Angular.js阿賈克斯和申請不工作
ID:1名:蘋果 ID:2名:微軟
但如果我把這個元素裏面的內容動態地使用JavaScript和AJAX,我無法顯示正確的數據。結果是:
ID:{{firm.id}}名稱:{{firm.name}}
我試圖使用的setTimeout()後續調用$適用(),但它確實沒有幫助。我試圖在網上找到一個解決方案,但我找不到類似的例子。有誰知道哪裏可以成爲問題?非常感謝您的幫助。
HTML代碼:
<div ng-app="myApp">
<div id="main_controler" ng-controller="mainController">
<button onclick="get_page('1')">Page one</button>
<button onclick="get_page('2')">Page two</button><br /><br /><br />
<div id="content">
<div ng-repeat="firm in data.firms" style="width:100%">
ID: {{firm.id}} Name: {{firm.name}}
</div>
</div>
</div>
</div>
JavaScript代碼:
var app = angular.module('myApp', []);
app.controller('mainController', function($scope, $http) {
$scope.get = function(a_number) {
var p_url = 'ajax_fce.php?num=' + a_number;
$http({
method: 'JSON',
url: p_url
}).success(function(data, status) {
$scope.data = data;
}).error(function(data, status) {
alert('Error');
});
}
$scope.get(1);
});
get_template_1 = function() {
return '<div ng-repeat="firm in data.firms" style="width:100%">'+
'ID: {{firm.id}} Name: {{firm.name}}'+
'</div> ';
}
get_template_2 = function() {
return '<div ng-repeat="person in data.persons" style="width:100%">'+
'Name: {{person.name}} Surname: {{person.surname}}'+
'</div> ';
}
load_template = function(page_id) {
var p_template = '';
if(page_id == 1) { p_template = get_template_1(); }
if(page_id == 2) { p_template = get_template_2(); }
return p_template;
}
get_page = function(page_id) {
$('#content').html(load_template(page_id));
angular.element(document.getElementById('main_controler')).scope().get(page_id);
angular.element(document.getElementById('main_controler')).scope().$apply();
}
PHP代碼(AJAX):
$p_return = '';
if ($_GET['num'] == '1') {
$p_return = ' { "firms": [ { "id": "1", "name": "Apple" },
{ "id": "2", "name": "Microsoft" } ]}'; }
else if ($_GET['num'] == '2') {
$p_return = ' { "persons": [ { "name": "Steve", "surname": "Jobs" },
{ "name": "Bill", "surname": "Gates" } ]}';
}
echo $p_return;
方法與你的模板不利於使用的角度適當,不應該有任何本地'onclick'在你的代碼內聯。需要花更多的時間與角度教程。從文檔站點開始。很多代碼都不需要用在角度應用程序 – charlietfl