[英]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.