2014-10-02 58 views
0

传递参数所需的语法会中断成功回调。答案是参数。我能获得成功的回调不使用额外块查询时工作:功能(回答){带参数和成功回调的角度服务工厂

Answer.query(answer, function(data) { 
      console.log(data); 
     }); 

这里是服务

.factory('Answer',function($resource, $cookies) { 
return { 

query: function(answer) { 

    return $resource('/api/answers/', {'question_id': $cookies.question_id, 'answer': 'test'}, 
     { 
     query: { method: 'POST', isArray: false} 
    }).query(); 

} 

} })

这里是回答。谢谢Gordon Bockus和Grundy。这节省了我很多时间。

Answer.query(answer);

.factory('Answer',function($resource, $cookies) { 
return { 

query: function(answer) { 

     return $resource('/api/answers/', {'question_id': $cookies.question_id, 'answer': answer}, 
     { 
     query: { method: 'POST', isArray: false} 
     }).query(function(result) { 
     console.log(result); 
     }); 

    } 
    } 
}) 
+1

尝试'“答案”:answer' – Grundy 2014-10-02 03:49:11

+1

感谢。这只是一个模拟。我正在研究一种叫做承诺的东西。 – nathanengineer 2014-10-02 03:55:07

+0

承诺是要走的路。当它回到$资源时,它会更清晰。 – 2014-10-02 04:03:39

回答

1

您将参数传递给工厂查询函数而不是资源查询函数。如果你想保持相同的结构,你需要更新你的工厂

.factory('Answer',function($resource, $cookies) { 
return { 

query: function(answer, callback) { 
    var result; 
    return result = $resource('/api/answers/', {'question_id': $cookies.question_id, 'answer': 'test'}, 
     { 
     query: { method: 'POST', isArray: false} 
    }).query(function() { 
    callback(result); 
    }); 

} 

退房的例子信用卡的资源在这个https://docs.angularjs.org/api/ngResource/service/页$资源