Angular $resource の非常に奇妙な動作を見つけました。次のコード行をチェックアウトしてください。
class Service
constructor: ($resource) ->
service = $resource '/record/:id'
Service::list = (cb) ->
service.query().$promise.then (data) ->
#result: data == [e, $promise: Object, $resolved: true]
cb data
Service::get = (id, cb) ->
service.get(id:id).$promise.then (data) ->
#result: data == {id: 1, name: 'name' ...}
cb format data
サービスの「get」メソッドはサーバーから送信された正しい値 (オブジェクト) を返しますが、「list」メソッドは結果として $promise と $resolved を含む配列を返します...
誰かが論理的な説明を持っていますか?
アップデート:
問題が見つかりました。サービスの結果は文字列の配列であり、結果として文字列の配列が発生します。これは、$resource の代わりに $http を使用することで解決できます。
元:
サーバー側 -> ['list', 'of', 'elements']
クライアント側 -> ['l','i','s','t']