【发布时间】:2016-11-12 01:24:13
【问题描述】:
我有以下代码(见下文),其中 MyCtrl1 是应用程序根据 URL 路由到的视图的控制器。控制器调用模型服务中的函数,该函数从 http 请求返回承诺。该模型应该在另一个服务 responseService 中记录一些东西,基于响应并向控制器返回承诺。如果 http 响应需要一段时间,我需要用户能够通过 URL 切换视图,并且在完成之前仍然让模型按请求工作。这是我的问题:
如果用户在 http 请求中间切换视图:
- MyCtrl1 消失了,即下次用户切换回 MyCtrl1 视图它不会记住调用和 承诺不会返回给它,对吗?
- 模型服务是否仍在处理 http 请求和更新 responseService 何时收到响应?
- 如果后者是“否”,我怎样才能让它工作?我需要用户 能够在 http 工作时切换视图。
谢谢!
myctrl1.controller.js:
angular.module('myApp')
.controller('MyCtrl1', ['$scope', 'myModels', function ($scope, myModels) {
myModels.listMyData().then(
function(response) {
...
},
function(response) {
...
}
);
}]);
myModels.models.js:
angular.module('myApp')
.service('myModels', ['$http', '$q', 'responseService', function($http, $q, responseService) {
this.listMyData = function() {
var promise;
...
$http.get('http://xxx.xxx.xxx').then(
function(response) {
// register something in responseService
// assign promise
},
function(response) {
// register something in responseService
// assign promise
}
);
return promise;
}
}]);
【问题讨论】:
标签: javascript angularjs http view promise