是否可以简化提供单个gettable / settable变量的服务?

时间:2014-06-12 12:47:43

标签: angularjs angularjs-service

我有这样的服务:

var app = angular.module('someModule');
app.factory('token', function() {
  var token = null;
  return {
    get: function() {
      return token;
    },
    set: function(tokenIn) {
      token = tokenIn;
    }
  };
});

我宁愿这样:

app.variable('token', null);

经过5年的POJO,我对吸气剂/孵化器产生了一种小而强烈的仇恨。有没有更好的方法来做角度? provide.constant和provide.value似乎不符合要求。我无法找到一个插件来执行此操作 - 这个概念是否有一些我不知道的词汇?

1 个答案:

答案 0 :(得分:4)

您可以直接使用对象:

myApp.factory('token', function(){
    return { Token : '' };
});

然后,您可以将token工厂注入您的控制器,并按如下方式获取或设置令牌:

myApp.controller("Test", function ($scope, token) {
    // set:
    token.Token = 'abc';
    // or get
    var local = token.Token;
});

这与您可以获得的“POJO”差不多。希望有所帮助!