从promise

时间:2015-09-22 17:34:30

标签: javascript angularjs

我在我的一个控制器中使用q服务,以确保我的请求在绑定then子句中的响应之前完成。现在这里是棘手的部分。页面上有一个指令,其模板更新范围变量。此范围变量用于在响应json的不同部分之间切换,如果您愿意,则使用A选择器。我需要在加载页面后更新then子句中的变量集。它由指令中添加的id设置。 我似乎无法找到一种有效的方法来更新它们。

$scope.selector = {}; //property added from a child scope
$q.all({
     //some factory calls and assignment to properties
}).then(function(responses){
  //scope variable assignments off of the responses object.
  //some assignment that uses the selector. a[selector.id] ex.
  }, function(err){
    $log.error(err);
   }).finally(function(){
      //some setting of load params
    });
  //Then I need to update those variables set in the then based on whether or not the selector id was changed in the directive template. 

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在这里猜测一下这个问题并不清楚,但从它的外观来看,你应该只是在范围内保存整套响应,然后提取你需要的数据。我不知道为什么每次想要提取一个方面时都试图更新整个响应。

$scope.selector = {}; //property added from a child scope
$scope.responses = {};
$q.all({
   //some factory calls and assignment to properties
}).then(function(responses){
   //scope variable assignments off of the responses object.
   //some assignment that uses the selector. a[selector.id] ex.
   $scope.responses = responses;
}, function(err){
   $log.error(err);
}).finally(function(){
  //some setting of load params
});
// Use something like $watch here and have it call a function

Watchers in AngularJS也可能有所帮助。