2013-06-11 91 views
0

我angularjsangularjs資源不返回正確的值

$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?

+0

什麼是VoteResource?它有一個toString(),當你做console.log時顯示這些字段? like_count的線是什麼樣的? –

回答

0

好的,我發現這個問題。資源是異步的所以我使用$ Q(承諾)注射,這是部分代碼來解決這個問題,有些鏈接$resource in angularjs does not work properly

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)} 

     ); 

    }