我正在尝试动态填充ListBox。但是它不能处理ajax请求。
这就是我正在做的事情。
我的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;
});我的控制器调用函数并填充数组:
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);
}
}
);我的观点:
<select id="dd_universities">
<option ng-repeat="uni in unis">{{uni.name}}</option>
</select>现在,在My Ajax Request代码中有两行注释。当我对这两行执行uncomment操作时,我的数据填充起来没有任何问题。但是每当我尝试使用ajax请求代码填充它时,就像现在正在发生的那样。它不起作用。可能的问题是什么?
发布于 2013-05-11 01:40:57
你的AJAX回调是在Angular之外执行的,所以即使你改变了你的作用域属性:
$scope.unis.push(unii);Angular不会注意到这些变化。在for循环之后调用$scope.$apply()。这将导致Angular运行digest cycle,它将注意到您的更改并更新您的视图。
https://stackoverflow.com/questions/16487442
复制相似问题