0

在控制器中,当我从服务中获取资源时

$scope.myVariable = MyObject.get($scope.id);

thenmyVariable未定义为 MyObject ,因为它将在稍后解决。有没有办法检查控制器中的变量(不在服务中),例如调试或日志记录?基本上我正在寻找类似的东西

console.log("myVariable now has property "+ $scope.myVariable.myProperty);
4

1 回答 1

2

从 AngularJS Doc 到$resource,你可以读到:

重要的是要意识到调用$resource对象方法会立即返回一个空引用。从服务器返回数据后,现有参考将填充实际数据。这是一个有用的技巧,因为通常将资源分配给模型,然后由视图呈现。拥有一个空对象不会导致渲染,一旦数据从服务器到达,那么该对象就会被数据填充,并且视图会自动重新渲染自身以显示新数据。这意味着在大多数情况下不必为操作方法编写回调函数

但是,如果您需要$scope.myVariable在填充后打印 的值,则必须定义一个回调函数:

$scope.myVariable = MyObject.get($scope.id, function(myVar){
   // From now, myVar == $scope.myVariable
   console.log("myVariable now has property "+ myVar.myProperty);
});
于 2013-04-08T12:54:38.217 回答