さて、$resource はこのように混乱する可能性があります...すぐに戻りオブジェクトへの参照を提供しますが、非同期 AJAX 呼び出しが戻るまでオブジェクトを更新しません...だから...
data.query() からの戻り値を $scope のプロパティに入れると、ビューにバインドすると $watched になるため、更新されます。ただし、単に警告しようとしている場合は、更新される前に値を警告します.. $resource の非同期の側面が原因です。
それ以外の場合は、@MarkRajcok が回答で示した方法で値を取得できます。
$resource query(); を使用する方法の疑似コードの図を次に示します。
app.controller('FooCtrl', function($scope, $resource) {
var Bar = $resource('/Bar/:id', {id: '@id'});
// here, we get the result reference and stick it in the scope,
// relying on a digest to update the value on our screen.
$scope.data = Bar.query();
//OR
//here we already have a reference.
var test = Bar.query(function() {
//in here, test has been populated.
$scope.data2 = test;
});
alert(test); //not populated here, yet.
//OR
Bar.query(function(x) {
$scope.data3 = x;
});
});
これはすべて行われるため、返されるオブジェクトは、$save() などのように事前にインスタンス化された関数を持つことができます。