Javascript 调用$resource后,是否运行摘要循环以便在我的视图中重新显示数据?
我创建了以下问题,以使用$promise for finally和$resource for version 1.2.2及更高版本来寻求帮助。我问这个问题是因为据我所知,文档中甚至没有提到它,也没有好的例子:-( 答案是:Javascript 调用$resource后,是否运行摘要循环以便在我的视图中重新显示数据?,javascript,angularjs,Javascript,Angularjs,我创建了以下问题,以使用$promise for finally和$resource for version 1.2.2及更高版本来寻求帮助。我问这个问题是因为据我所知,文档中甚至没有提到它,也没有好的例子:-( 答案是: //Using the promise on your resource. function success(){/**success*/}; function error(){/**failure*/}; function last(){/**finally*/}; en
//Using the promise on your resource.
function success(){/**success*/};
function error(){/**failure*/};
function last(){/**finally*/};
entityResource.save(data,success,error).$promise.finally(last);
然而,让我困惑的是以下陈述:
"By using angular's $q and .then You will invoke a $digest cycle.
Which will update your view, which is usually fantastic."
这是否意味着如果我使用上面的代码调用我的资源,那么我将不会更新视图?我当前正在做的是手动更新视图,如下所示:
entityResource.update({ id: entityId }, data,
function (result) {
angular.copy(result, $scope.modal.data);
},error).$promise.finally(last);
...
这是我做这件事的正确方法吗?对不起,我之前没说清楚。我会尽量解释清楚的 什么
是$resource
和$http
的高级抽象$q
实例方法中用于更改数据绑定值的任何回调都将更新视图,因为将运行摘要循环。(是,请回答标题问题)$resource
方法将在内部调用的$resource
方法的承诺上设置的成功和错误回调中执行成功和错误回调。。。$http
- 例如,
$http(config)。然后(internalSuccess,internalError)
- 例如,
接受该值,即另一个承诺,并设置$resource
属性,允许您根据需要添加$promise
回调最终
- 那么对于
内部来说很重要,因为该方法将由$resource
执行,该方法的状态至少会发生一个摘要循环$rootScope.evalAsync
- --源代码有更好的文档…:P
then
子句(或$resource
回调)中的数据绑定$scope
属性所做的任何修改这是因为angular实现了$q
,或者$q
实现了$rootScope.evalAsync
在您的特定情况下,您只需要在成功时使用资源中的值修改$scope
属性。无论您是作为浅拷贝还是作为深拷贝(angular.copy)执行此操作,都不重要。当然,除非您的资源实例位于作用域上。然后它将自动更新。(因为这是$resource提供的抽象)
我希望这能很好地解释问题!它会更新视图。