Angularjs资源没有返回正确的值

angularjs resource does not return the right value

本文关键字:返回 资源 Angularjs      更新时间:2023-09-26

我在angularjs的控制器中有这段代码

    $scope.likeit = function(entry) {
        entry.like = !entry.like;
        var ret = VoteResource.save(entry);
        console.log("Return Object")
        console.log(ret)
        console.log("======================================")
        console.log("Return Like Property")
        console.log(ret.like_count)
        return ret
    };

当我试图在视图中触发此函数并在控制台中检查时,这是输出

    Return Object 
       Resource {comment_count: 0, confess: "Hello world!!! kk", created_at: "2013-06-11T00:26:25Z", feeling_id: 0, hug_count: 0…} 
       comment_count: 0
       confess: "Hello world!!! kk"
       created_at: "2013-06-11T00:26:25Z"
       feeling_id: 0
       hug_count: 0
       id: 1
       like_count: 0
       metoo_count: 0
       updated_at: "2013-06-11T23:48:16Z"
       user_id: null
       __proto__: Resource
       ====================================== 
       Return Like Property 
         1 

我的问题是为什么它是ret.like_count返回1。在第一个控制台日志中,like_count的资源值为零(0),但在ret.like_count输出中,它返回1。为什么?那么我如何访问资源中的like_count呢?

我找到问题了。资源是异步的,所以我使用$q (promise)注入这是解决问题的部分代码angularjs中的一些链接$资源不能正常工作

    save: function(confession) {
        var defferred = $q.defer()
        resource.save(confession,
            function(response) {
                console.log(response);
                confession.like_count =  response.like_count
                defferred.resolve(response);
            },
            function(response) { defferred.reject(response)}
        );
    }