从服务 AngularJS + TypeScript 调用指令
call a directive from a service angularjs + typescript
我正在尝试从服务调用指令。我已经实现了所有内容,但我的服务范围是空的。通常,我的函数正在从控制器调用指令。但是现在跨多个控制器需要这些功能,因此我想将它们放在服务中。问题是我的服务即使在将指令的依赖项注入到服务中后也看不到指令中的函数。
export interface MyServiceScope extends IScope, directives.MyPanelScope, directives.MyPanelMenuScope {
// a bunch of properties that are not visible in the service scope, only the controller
}
// constructor here, controller does not initialize directives here just in interface and it works fine.
public serviceFunc() {
this.scope.panel.directiveFunc({ // directiveFunc undefined in service, but not in controller
template: "some/html/template",
data: {
item: data
}
});
}
那么,我该怎么做才能让服务看到指令并调用其函数呢?
您不能将指令注入到 n Angular 的服务中。实际上,您不能在任何地方注入指令。指令应该是一组与特定 DOM 元素严格相关的函数,使用它们在应用程序的不同部分之间共享代码通常是不好的做法。这个目的可以通过服务来实现。
如果您发现自己处于服务需要从指令调用某些函数的情况,我建议您查看代码结构。我不知道您的具体情况,但是您可以将指令中的"共享"逻辑转移到服务中,将该服务注入指令并从那里调用它。这样,指令调用的逻辑也可以注入到应用程序的其他部分。
相关文章:
- 显示指令时调用指令方法
- AngularJS:如何调用指令中定义的函数'控制器的作用域
- 如何在ngRepeat中调用指令
- 未对输入更改调用指令
- 从子指令调用指令函数不起作用
- 从 AngularJS 中的父控制器调用指令的方法
- 从服务 AngularJS + TypeScript 调用指令
- 如何从 Angular 上的控制器调用指令的函数
- 如何从 JavaScript 调用指令函数
- Angular JS 如何从指令模板内容事件调用指令范围函数
- 从控制器调用指令中函数的最佳方法是什么
- 从传入的内容调用指令方法
- Angularjs-在ng-init函数完成后调用指令
- 从另一个指令调用指令
- 从父指令角度调用指令函数
- 如何从控制器调用指令作用域上的函数
- 有棱角的从html调用指令中的函数
- 动态元素未在AngularJS上调用指令方法
- 是'不良做法'用于Angular控制器调用指令上的函数
- AngularJS:从具有隔离作用域的控制器中调用指令中的函数