我正在使用AngularJS构建应用程序。我在我的应用程序中使用Slim处理Web服务。
我有一项服务:
angular.module('MyApp').
factory('MainPage', function($resource,BASE_URL){
return $resource("my api call", {}, {query: {method:'GET'}, isArray:true});
}).
从Slim我返回一个json响应,如:
$resposedat = array("value1"=>"val1","value2"=>"val2");
echo json_encode($resposedat);
在我的控制器中,我写道:
var app = angular.module('MyApp')
app.controller('MainCtrl',function($scope,MainPage,$rootScope){
$scope.mainpage = MainPage.query();
console.info($scope.mainpage);
console.info($scope.mainpage.length);//undefined
});
对于console.info($scope.mainpage)
资源{$ get:function,$ save:function,$ query:function,$ remove:function,$ delete:function ...}
value1:“val1”
value2:“val2”
我的控制台为undefined
console.info($scope.mainpage.length)
我在这做错了什么?
答案 0 :(得分:2)
MainPage.query()
是异步的,因此您的数组不存在,因此在您调用它时没有length
属性。
值$scope.mainpage
一直存在,直到检索到数据为promise
。它是一个临时占位符。