通过数组

时间:2016-02-20 15:21:42

标签: javascript jquery angularjs ajax onsen-ui

我正在尝试将ajax数据加载到数组中然后使用Angular绑定数组,这是我的代码(我是KO经验的初学者,所以我试着让它变得简单易用)

更新 我得到它的工作我认为问题是在加载Ajax数据之前加载页面,(虽然我认为首先加载页面是正常的!!)但是这里发生了什么,我正在使用Onsen UI,它加载页面模板移动,所以解决方案是移动“SetMainPage”(加载页面/导航的功能)我移动此函数在数据加载后调用(ajax>成功)。现在绑定工作了。

我不确定这是最好的做法,如果你有我的建议将不胜感激

1-在我的控制器中,我将以下Feed设置为空数组,然后尝试填充:

var self= this;
self.feed = [];.....

加载ajax时我设置了这个数组的值

angular.extend(self.feed, data.obj);
            alert(JSON.stringify(self.feed));

所以第二行给我提醒对象self.feed中正确加载的数据但是这并没有反映出调用时的角度视图,bd.feed中似乎没有项目

    <div ng-repeat="act in bd.feed">
        {{act.activity_id}}
    </div>

其中bd在body标签中被定义为控制器,如下所示

<html lang="en" ng-app="app" ng-csp>
<body id="body" ng-controller="MyController as bd">

以下是我如何初始化控制器

angular.module('app', ['onsen']).controller('MyController', function ($scope,$rootScope) {
var self = this;

我从视图中调用ajax函数:

{{bd.getfeed()}}     

控制器中的getfeed代码

self.getfeed = function () {
    $.ajax({
        type: 'POST',
        url: "http://www.server.com/api",
        crossDomain: true,
        data: { panel: 'ok' },
        success: function (data) {
            console.log(data);
                var json_obj = JSON.parse(data);
                console.log(json_obj);
                var obj = json_obj.obj;
                console.log(obj);

                angular.extend(self.feed, json_obj.obj);
                        },
        error: function (data) {  }
    });
}

可能是我遗漏了很多东西,但我只是想要一种方法将json加载到对象并正确显示..以后可能会有一些关于最佳实践的建议

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我使用以下2行将数据加载到数组

  $scope.myArray = json_obj.search_result;
 angular.extend($scope.myArray , json_obj.search_result);

由于