簡體   English   中英

從服務器json角度加載數據

[英]Angular loading data from server json

誰能告訴我在ng repeat中使用jsonObjects的最佳解決方案是什么? 我的代碼如下:

我的PHP響應是這樣的:

die(json_encode(array('sts'=>'success', 'title'=>'*****', 'msg'=>'*******', 'data'=>$result)));

我的angular.js服務是這樣的:

LeadApp.service('LeadsService', function ($http) {
  var AllLeads = {
    async: function() {
        var promise = $http({
            url: '../app/ServerData.php',
            method: "POST",
            params: { req_id: 'leads' }
        }).then(function (response) {
        return response.data;
      });
      return promise;
    }
  };
  return AllLeads;
});

然后在我的控制器中,我調用該服務並設置一個Lead var以便在我的視圖中使用ng repeat:我已經確定我的數據已加載。 我從下面附加了控制台日志的圖片。 但是不知何故,ng重復無法按預期工作...我在做什么錯? 沒有錯誤!

    ....
        LeadsService.async().then(function (d) {
                this.leads = d.data;
                console.log(this.leads);
       this.list_all = this.leads;

這是視圖中的主要ng重復部分(使用dir-paginate定制ng重復):...

<div class="widget-content leads_list" ng-controller="leadsController as leads">
<tr dir-paginate="lead in leads.list_all | orderBy:sortKey:reverse | filter:search | itemsPerPage:15" pagination-id="leads.list_all">
    <td scope="row">{{lead.id}}</td>

...

this不是該回調函數上下文中的控制器。 因此,您需要this分配給控制器中的變量。

 var ctrl = this;

 LeadsService.async().then(function (d) {
        ctrl.leads = d.data;
        console.log(ctrl.leads);

您需要在then方法之外綁定this上下文。

由於您使用的ng-controller="leadsController as leads" ,這將是明智綁定到變量leads

var leads = this;
LeadsService.async().then(function (d) {
        leads.list_all = d.data;
        console.log(leads.list_all);
});

this上下文中,內部then方法是不一樣的this外部上下文then方法。 綁定到您在模板中使用的相同名稱也有助於避免混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM