我有以下代码(见下文),其中 MyCtrl1 是应用根据网址路由到的视图的控制器。控制器调用模型服务中的函数,该服务从http请求返回promise。该模型应该根据对控制器的响应和返回承诺,在另一个服务 responseService 中记录某些内容。如果http响应需要一段时间,我需要用户能够通过URL切换视图,并且仍然可以按要求处理模型,直到完成为止。这是我的问题:
如果用户在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;
}
}]);
答案 0 :(得分:1)
您可以说javascript中的对象/函数只有在未被引用时才会被删除。当你打电话:
[JsonProperty(PropertyName = "id")]
public Guid Id { get; set; } // Guid is used here, not string
[Version]
[JsonProperty(PropertyName = "version")] // Needed? I assume the attribute is enough
public byte[] Version { get; set; } // byte[] is used here, not string
现在引用了 $http.post(...).then(callback)
函数。因此它不会被删除,如果用户切换视图,它将执行忽略。
回答你的问题:
是的
2.是的