0
我想動態地填充ListBox。但它不適用於Ajax請求。ajax請求數據未被加載 - Angular JS
這是我正在做的。
我的Ajax請求:
angular.module("confessions_module").factory("Universities",function(){
var service = {};
service.getUniversitiesAjax=function(callback)
{
$.ajax({
type:'GET',
url:'myurl',
success:function(e)
{
universitiesList = $.parseJSON(e);
callback(universitiesList);
}
});
// var a = [{ 'name':'asdasdsad','id':123},{ 'name':'mozi','id':123}];
// callback(a)
}
return service;
});
我的控制器調用該函數和填充陣列:在My Ajax Request
評論
<select id="dd_universities">
<option ng-repeat="uni in unis">{{uni.name}}</option>
</select>
現在有兩條線:
Universities.getUniversitiesAjax(
function(university)
{
for(var i=0;i<university.length;i++)
{
var unii = { 'name' : university[i].name , 'id' : university[i].id };
$scope.unis.push(unii);
}
}
);
我見碼。當我uncomment
這兩行,我的數據填充沒有問題。但是,無論何時我嘗試使用ajax請求代碼填充它,因爲它現在正在發生。這是行不通的。可能是什麼問題呢 ?
您應該使用$ http而不是$ .ajax,否則您可能會遇到一些問題 – 2013-05-10 17:10:06
$ http是由angular提供的嗎? – Mj1992 2013-05-10 17:10:45
是的,它是一個可注入的服務,然後你可以簡單地'$ http.get(「myurl」)。success(function(){})'這個最大的好處是響應在角框架內消化,不必使用$ scope。$ apply()'。 http://docs.angularjs.org/api/ng.$http – 2013-05-10 17:50:36