【发布时间】:2015-09-06 12:02:19
【问题描述】:
我有一个使用 ngDialog 的服务(这是该服务的唯一目的 - 显示常见对话框:警报、确认等)。 ngDialog 需要将范围对象作为参数传递以插入对话框的模板。 所以我需要创建一个范围,分配它的属性并传递给 ngDialog.open。 问题是我无法将 $rootScope(或 $scope)注入服务,而 scope.$new 是我能找到的创建空范围的唯一方法。 当我像这样注入 $rootScope 时
myService.$inject = ['$rootScope', 'ngDialog'];
我收到错误:未知提供者:$rootScope 提供者
function myService($rootScope, ngDialog) {
//这里的$rootScope是可以访问的
}
但这种方法不是缩小安全的。 所以问题是:如何在服务中创建新范围?
更新 这是显示我在项目中的结构的 jsfiddle。从指令调用服务时发生错误,现在问题消失了。 jsfiddle
【问题讨论】:
-
ngDialog requires scope object to be passed as parameter- 我不认为这是正确的。您是否尝试过不通过范围? -
它需要范围来插入模板。如果我不通过范围,对话框将出现,但我无法在没有范围的情况下更改其中的任何内容
标签: javascript angularjs