2015-09-22 96 views
0

我在我的控制器之一中使用q服務來確保我的請求在綁定then子句中的響應之前完成。現在這是棘手的部分。在模板更新範圍變量的頁面上有一個指令。這個範圍變量用於在響應json的不同部分之間切換,如果您願意,可以選擇一個選擇器。我需要在加載頁面後更新then子句中的變量集。它由在指令中添加的id設置。 我似乎無法找出更新它們的有效方法。Angular從承諾返回後更新範圍變量

$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

你發佈了你的整個問題嗎?我不確定我是否理解你有什麼問題,或者缺少什麼。 – azium

+0

@azium剛更新了這個問題。謝謝! – Hunterrex

+2

我仍然不明白你想達到什麼目的。 – zszep

回答

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也可能有幫助。

+0

完美工作。對不起,很模糊。非常感謝你的幫助。 – Hunterrex

+0

不是問題。如果這對你有用,記住標記爲已解決? – karrde00