我正在尝试抽象从Parse.com检索数据的factory
。
理想情况下,我想使用此代码传递我正在查询的类的名称(字符串变量),然后使用相同的键将返回的值设置为$localStorage
(来自here)作为变量。
例如:
.factory('userDataFactory', function(ParseFactory, $localStorage, errorFactory, _) {
var userQuery = {
'userId': Parse.User.current().id
};
return {
getData: function(targetClass) {
ParseFactory.provider(targetClass, userQuery).getAll().success(function(data) {
var flattened = _.extend.apply(_, data.results);
// insert variable name here
$localStorage.targetClass = flattened;
}
}).error(function(response) {
return errorFactory.checkError(response);
});
}
}
})
你会注意到我正在调用其他工厂.factory
这会被视为“糟糕的形式”吗?
答案 0 :(得分:0)
根本没有错。从Angular中调用服务中的其他服务很常见(想想当你使用$ http或其他Angular内置服务时)。我看到的唯一问题是你使用Parse对象而不将其作为依赖项注入。如果这也是一个Angular服务,只需像你有ParseFactory一样注入它。
答案 1 :(得分:0)
答案是:
$localStorage[targetClass] = flattened;
使用方括号而不是.