好的,所以 $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() 等。