首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用angulars ngResource get方法

使用angulars ngResource get方法
EN

Stack Overflow用户
提问于 2013-06-20 23:52:15
回答 2查看 427关注 0票数 0

我在C#中定义了一个基本的控制器,它的唯一目的是返回当前用户是谁。

代码语言:javascript
运行
复制
    namespace ProjectName.Controllers
{
    public class UserController : ApiController
    {


        // GET api/user/
        public string Get()
        {
            return User.Identity.Name;
        }

    }
}

然后,我定义了一个ngResource来查看该控制器

代码语言:javascript
运行
复制
cript.factory('User', function ($resource) {
return $resource('/api/User')
});

最后,我尝试让该用户进入我的Angular Controller

代码语言:javascript
运行
复制
    $scope.checkIfAuth = function () {
    $scope.user = User.get();

    console.log($scope.user);

    if ($scope.user === '"DS//:lemieszr"') {
        console.log("success");
    }
};

问题是$scope.user是一个如下所示的资源对象

代码语言:javascript
运行
复制
    Resource {$get: function, $save: function, $query: function, $remove: function, $delete: function}
    0: """
    1: "D"
    2: "S"
    3: "\"
    4: "\"
    5: "l"
    6: "e"
    7: "m"
    8: "i"
    9: "e"
    10: "s"
    11: "z"
    12: "r"
    13: """
    __proto__: Resource

有没有办法只获取包含我用户名的字符串。User.query()只返回一个空数组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-21 00:10:57

我建议研究一下Angular对Kris Kowal的Q promise库($q)的实现。我现在也在使用MVC4.0,我发现它比ngResource更灵活。

但是,对于您的问题,这里的问题是您正在向服务器发出异步请求,同时同步调用其响应。好吧,数据还没有到达那里(为什么你会看到一个空数组[])。这个空数组基本上就是服务器说:“嘿,在你的http请求上做的很好,我们正在获取你的数据,为了向你证明这一点,这里是一个空数组,当数据到达你的时候,我们将把数据放在那里。”

换句话说,你的问题是,在$scope.user的值还没有出现之前,你就要求设置检查它的值(粗略地说)。

您可以选择两种简单的修复方法(至少据我所知):您可以在一个单独的函数或其他服务中将$scope.user设置为来自服务器的响应,然后在响应到达后使用该响应。或者(更好的“简单”修复)使用$timeout服务,它本质上是告诉您的系统“冷静下来,直到我的异步请求完成,并且我有了我的数据”。

票数 1
EN

Stack Overflow用户

发布于 2013-06-21 00:33:46

User.query()返回一个空数组,因为它需要一个json对象数组[{...},{...}]作为来自后端的响应。例如,User.get假设你的服务器返回一个像{"name":"Andi"}这样的对象,所以如果你的服务器响应是正确的,get方法就没有问题。

代码语言:javascript
运行
复制
$scope.user = User.get();

那么您就有权以$scope.user.name身份访问您的name属性

这可能会帮助你link

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17218238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档