AngularJS作用域作为工厂侦听器
我有一个工厂,它只返回一个upload helper对象。此帮助程序将文件上载到服务器,并将上载进度返回给其侦听器。 通过将回调方法设置为upload helper,工厂中注入的控制器就是侦听器。 控制器获取值,但不使用新值更新其作用域 这是工厂:AngularJS作用域作为工厂侦听器,angularjs,Angularjs,我有一个工厂,它只返回一个upload helper对象。此帮助程序将文件上载到服务器,并将上载进度返回给其侦听器。 通过将回调方法设置为upload helper,工厂中注入的控制器就是侦听器。 控制器获取值,但不使用新值更新其作用域 这是工厂: app.factory("upHelper", function(){ var uploadHelper = function(){ } uploadHelper.prototype.addFileToUpload = fu
app.factory("upHelper", function(){
var uploadHelper = function(){
}
uploadHelper.prototype.addFileToUpload = function(file){
this.file = file;
}
uploadHelper.prototype.stopUpload = function(){....}
uploadHelper.prototype.setListener = function(cb){
var self = this;
cb(self.getStatus());
}
var upHelper= new uploadHelper();
return self.uploadHelper;
}
带工厂注入的控制器:
app.controller("upload", function("upHelper"){
$scope.file = file;
$scope.uploadFile = function(file){
uploadHelper.addFileToUpload($scope.files);
if(!uploadHelper.running)
uploadHelper.start():
uploadHelper.setListener(function(uploadStatus){
$scope.file.uploadStatus = uploadStatus; // this doesn't update the scope
$scope.apply(function(){
$scope.file.uploadStatus = uploadStatus; //causes error and doesn't update anything.
});
}
}
}
几个控制器使用uploadHelper。。是否有更好的方法来实现此功能或使其发挥作用?错误是什么?它应该是
$scope.$apply
,我不明白为什么它不能解决这个问题,就是这样。很多坦克