为什么UnderscoreJS的_.extend()方法没有复制AngularJS承诺扩展对象?

时间:2014-09-22 22:17:24

标签: angularjs underscore.js

示例:

$scope.post = Posts.get({id: id});
scope = _.extend({}, $scope);

alert($scope.post.id); // undefined
alert(scope.post.id); // exception - post is not defined

我觉得我做的事情显然是错的,但我无法弄清楚是什么。我希望它能够轻松地将post引用复制到新对象:

alert($scope.post.id); // undefined
alert(scope.post.id); // undefined
$scope.post === scope.post; // true

1 个答案:

答案 0 :(得分:0)

这是关于ngResource的Angular文档

  

重要的是要意识到调用$ resource对象方法   立即返回一个空引用(对象或数组取决于   IsArray的)。一旦数据从服务器返回现有数据   引用填充了实际数据。这是一个有用的技巧   因为通常将资源分配给当时的模型   由视图呈现。拥有一个空对象导致无法渲染,   一旦数据从服务器到达,则填充对象   随着数据和视图自动重新呈现自己显示   新数据。这意味着在大多数情况下,人们永远不必写一个   动作方法的回调函数。

当您尝试扩展范围时,您的对象并不完全存在。 我希望有帮助...