如何在Angular中获取常量服务的实例

时间:2014-04-29 13:27:20

标签: asp.net-mvc angularjs

我在ASP.NET MVC视图中有以下内容:

<script>
    angular.module('DiagsDashboard.services').constant('settings', @Html.Raw(Json.Encode(Model)));
</script>

之后我想从服务中获取价值:

 var $injector = angular.injector();
 var configSettings = $injector.get('settings');

然而,我收到错误: 未知提供者:settingsProvider

如何在不使用控制器的情况下进入这些设置? 我希望能够在控制台上进行测试。

2 个答案:

答案 0 :(得分:1)

您没有正确定时进样器。
根据 the docs $injector()应该通过:

  

模块函数列表或其别名。 [...]必须明确添加ng模块。

因此,为了让您的实例化注入器能够“了解”您应用的工件,您需要像这样实例化它:

var $injector = angular.injector(['ng', 'yourApp']);
var configSettings = $injector.get('settings');

答案 1 :(得分:-1)

如果你想在单元测试中测试常量,你可以做类似的事情:

// .. test setup ..
module('DiagsDashboard.services');
var configSettings;
inject(function(settings) {
    configSettings = settings;
});
// .. whatever you want to test now ..