2013-04-23 123 views
0

我有一个具有以下功能的服务,

public object Get(AllUsers request) 
{ 
    var users = XYZ.GetAllUsers(); 
    var userList = users.Cast<XYZ>(); 

    return new AllUsers 
    { 
     UsersAcc = userList.Select(ConvertToEntity).ToList() 
    }; 
} 

我想从角控制器的结果。

function UserAccountController($scope, $location, $filter, UserAccount) { 
    @scope.items = function(){ 
    var abc = UserAccount.query(); 
return abc.UsersAcc 

    } 
    } 

这里是我的服务

angular.module('userAccService', ['ngResource']).factory('UserAcc', function($resource) { 
    return $resource('/api/useracc/:id', {}, { 
     query: { 
     method: 'GET', 
     } 
}); 

我是新来的角度服务,似乎并不能使它工作。

+0

在控制器中有'@ Scope.items'而不是'$ scope.items',这也是出于某种原因的功能。您可能只是想''scope.items = UserAccount.query();' – Bart 2013-04-23 21:33:06

+0

UserAccount.query()返回两个对象之一的类型int和其他类型列表(UsersAcc)。我试图通过做var abc = UserAccount.query()来获取列表;返回abc.UsersAcc,不起作用 – Nanu 2013-04-23 21:38:25

回答

1

您需要创建一个数组对象并将其返回。查询完成后,您可以使用列表UsersAcc填充相同的实例。请记住,$scope.items将是[],直到查询返回数据。

$scope.items = getUsersAcc(); 

function getUsersAcc() { 
    var dataArray = new Array();   
    UserAccount.query(function (data) {   
     var list = data.UsersAcc; 
     for (var i = 0, c = list.length; i < c; i++) { 
      dataArray.push(list[i]); 
     } 
    }; 
    return dataArray; 
}; 
+0

谢谢先生,工作! :) – Nanu 2013-04-24 18:22:58