如何在.value()contstruct中使用变量?

时间:2016-06-02 22:18:35

标签: angularjs

我已经在.value()构造中定义了一堆全局值。我希望能够在其中定义变量,以便我可以引用变量而不是反复重复信息,类似于:

.value('globalValues',
{
    host: "http://10.0.2.2/",
    site: "MySite/",

    adsApi: host + site + 'api/AdsApi/',
    accountApi: host + site + 'api/AccountApi/',
    accountLogout: host + site + 'Account/LogoutApi/'
})

目前这不起作用,因为host未定义,我无法在该结构中定义host。这可能是其他方式吗?

1 个答案:

答案 0 :(得分:0)

value服务为syntactic sugar over factory service(且factory为加油provider服务。

app.value('globalValues', { ... });

相同
app.factory('globalValues', (() => {
  var eagerlyAssignedObj = { ... };

  return () => eagerlyAssignedObj;
})());

factory是无法在服务定义时定义的对象的用例。通常这意味着应该将其他数据作为另一项服务注入:

app.factory('globalValues', (hostAndSiteService) => ({
  host: hostAndSiteService.host,
  ...
}));