2015-05-14 89 views
0

我想使用AJAX函數從PHP網頁導入JSON數據,然後在Angular JS控制器中使用它。問題是,沒有任何工作。JS,Angular,AJAX:如何混合這三個?

這裏是我的代碼:

(function(){ 
    var xmlhttp = new XMLHttpRequest(); 
    var url = "ajax/get_pal.php?type=populars&page="; 
    xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     pal = JSON.parse(xmlhttp.responseText); 
    } 
    } 
    xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 

    var app = angular.module('palMod', []); 
    app.controller('PalController', function(){ 
    this.prod = pal; 
    }); 
})(); 

我仍然在AngularJS初學者,但我完全失去了這裏。我做錯了什麼?

get_pal.php發送類似的東西:(有一些DATAS,當然)

[{"id":"1","name":"Test","list":"[]","date_post":""}, ......] 
+0

讀取DOC,棱角分明就是JS和AJAX是在$ HTTP – Bobot

+0

https://docs.angularjs.org/api/ng/service/$http – Bobot

+0

順便說一句,你還應該考慮請看$ q for async reqs:https://docs.angularjs.org/api/ng/service/$q – Bobot

回答

0

你可以使用的$ HTTP模塊achiev你想要什麼。你可以在這裏閱讀它的文檔https://docs.angularjs.org/api/ng/service/ $ http

希望這有助於!

P.S:不要忘記注入模塊。

(例:VAR應用= angular.module( 'MyCtrl',[ '$ HTTP']);

+1

使用$ http需要大部分時間:[$ q](https://docs.angularjs。 org/api/ng/service/$ q) nc要求 – Bobot

+0

良好的呼叫伴侶! –

3

不要angularjs混淆普通AJAX Angularjs給出的方法來使AJAX調用 使用$ HTTP來撥打電話。

var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("http://www.websitename.com/file.php") 
    .success(function(response) {$scope.names = response.records; 
}); 
}); 
+0

仍然需要[$ q](https://docs.angularjs.org/api/ng/service/$q) – Bobot

+0

你忘了注入$ http模塊,但是你還是得到了我的讚賞! –

+0

感謝您的示例! 不幸的是,它仍然無法正常工作。 @ Bob0t:你把$ q放在哪裏? – Iksen