我正在尝试编写一个AngularJS服务,它应该在存储文件中作为单例工作。应该有两种方法:
我正在尝试写这样的东西:
app.factory('fileStorage', ['LogService', function (LogService) {
var fileStorage = {
this.files = {};
this.getFilesForTabId = function (key) {
return this.files[key];
};
this.setFilesForTabId = function (key, files) {
this.files[key] = files;
return true;
}
}
return fileStorage;
}]);
但这段代码很糟糕。我正在尝试使用它时出错。我怎么写呢?我很感激你的帮助
现在我遇到了 getFilesForTabId 功能的问题。我正在尝试使用未定义的文件[key]对象运行此函数。 我的实际服务代码是:
app.factory('fileStorage', ['LogService', function (LogService) {
var fileStorage = {
files: {},
setFilesForTabId: function(key,files){
this.files[key] = files;
return true;
},
getFilesForTabId: function (key) {
if(typeof(files[key]) === undefined) {
return [];
}
else{
return this.files[key];
}
}
}
return fileStorage;
}]);
答案 0 :(得分:1)
您无法在=
对象中使用{}
。
var fileStorage =
{
files: {},
getFilesForTabId: function (key) {
return this.files[key];
},
setFilesForTabId: function (key, files) {
this.files[key] = files;
return true;
}
};
答案 1 :(得分:1)
您正在尝试将fileStorage
初始化为对象,但正在将其编写为函数。您需要使用对象初始化程序语法。
请改为尝试:
app.factory('fileStorage', ['LogService', function(LogService) {
var fileStorage = {
files: {},
getFilesForTabId: function(key) {
return this.files[key];
},
setFilesForTabId: function(key, files) {
this.files[key] = files;
return true;
},
};
return fileStorage;
}]);