将ngStorage设置为变量值(字符串)

时间:2015-09-02 19:17:37

标签: angularjs parse-platform local-storage

我正在尝试抽象从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这会被视为“糟糕的形式”吗?

2 个答案:

答案 0 :(得分:0)

根本没有错。从Angular中调用服务中的其他服务很常见(想想当你使用$ http或其他Angular内置服务时)。我看到的唯一问题是你使用Parse对象而不将其作为依赖项注入。如果这也是一个Angular服务,只需像你有ParseFactory一样注入它。

答案 1 :(得分:0)

答案是:

$localStorage[targetClass] = flattened;

使用方括号而不是.