gpt4 book ai didi

javascript - 从服务器 json Angular 加载数据

转载 作者:行者123 更新时间:2023-12-02 14:54:15 25 4
gpt4 key购买 nike

有人可以告诉我在 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;
});

然后在我的 Controller 中,我调用该服务并设置一个引导变量,以便在我的 View 中使用 ng 重复:我保证已经加载了我的数据。我附上了下面控制台日志的图片。但不知怎的, ng 重复就不会像预期的那样工作......我做错了什么?没有错误!

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

这是 View 中主要的 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>

...

最佳答案

您需要在 then 方法外部绑定(bind) this 上下文。

由于您使用 ng-controller="leadsController as Leads",因此明智的做法是绑定(bind)到变量 leads

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

then 方法内的 this 上下文与 then 方法外部的 this 上下文不同。绑定(bind)到您在模板中使用的相同名称也有助于避免混淆。

关于javascript - 从服务器 json Angular 加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com