我在我的一个控制器中使用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.
非常感谢任何帮助。
答案 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也可能有所帮助。