首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax请求数据未加载- Angular JS

ajax请求数据未加载- Angular JS
EN

Stack Overflow用户
提问于 2013-05-11 01:07:08
回答 1查看 1.3K关注 0票数 0

我正在尝试动态填充ListBox。但是它不能处理ajax请求。

这就是我正在做的事情。

我的Ajax请求:

代码语言:javascript
复制
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;
});

我的控制器调用函数并填充数组:

代码语言:javascript
复制
   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);
        }
    }
);

我的观点:

代码语言:javascript
复制
                   <select id="dd_universities">
                        <option ng-repeat="uni in unis">{{uni.name}}</option>
                    </select>

现在,在My Ajax Request代码中有两行注释。当我对这两行执行uncomment操作时,我的数据填充起来没有任何问题。但是每当我尝试使用ajax请求代码填充它时,就像现在正在发生的那样。它不起作用。可能的问题是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 01:40:57

你的AJAX回调是在Angular之外执行的,所以即使你改变了你的作用域属性:

代码语言:javascript
复制
$scope.unis.push(unii);

Angular不会注意到这些变化。在for循环之后调用$scope.$apply()。这将导致Angular运行digest cycle,它将注意到您的更改并更新您的视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16487442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档