如何调用共享指令';Angular2 RC5打字脚本中的s方法?
我的代码中有几个组件应该使用的自定义指令。我在app.module中注册了它,因此可以在我的模板中使用它 但我的问题是,我看不到从组件代码调用此指令的方法的方法,因为它不再导入并在如何调用共享指令';Angular2 RC5打字脚本中的s方法?,angular,angular2-directives,Angular,Angular2 Directives,我的代码中有几个组件应该使用的自定义指令。我在app.module中注册了它,因此可以在我的模板中使用它 但我的问题是,我看不到从组件代码调用此指令的方法的方法,因为它不再导入并在指令:[]中注册它了 例如。 在这里,当我不共享指令时,它的用法如下 import { Modal } from '../bootstrap'; @Component({ templateUrl: '.....html', directives: [Modal]
指令:[]
中注册它了
例如。
在这里,当我不共享指令时,它的用法如下
import { Modal } from '../bootstrap';
@Component({
templateUrl: '.....html',
directives: [Modal]
})
export class MyComponent {
constructor(private modal: Modal) {
this.modal.show();
}
}
但是,当我将这些组件提取到单独的模块中并将此指令移动到共享模块时,
import..
和指令:[……]
就不见了,我无法将private modal:modal
注入到调用其方法show
中。如果我保留它们,我会得到错误:类型模态是2个模块声明的一部分:…
错误消息。将其添加到AppModule中的[providers]
:
providers:[模式]
然后您需要在应该使用该服务的组件中导入该服务,该服务将正常工作,无需将其添加为指令,例如:
从“../bootstrap”导入{Modal}代码>
然后,您可以将其添加到构造函数:
构造函数(私有模式:模式)
现在您可以使用该服务:
this.modal.show()
编辑:
更新了答案以匹配您提供的代码。将其添加到AppModule中的[providers]
:
providers:[模式]
然后您需要在应该使用该服务的组件中导入该服务,该服务将正常工作,无需将其添加为指令,例如:
从“../bootstrap”导入{Modal}代码>
然后,您可以将其添加到构造函数:
构造函数(私有模式:模式)
现在您可以使用该服务:
this.modal.show()
编辑:
更新了答案以匹配您提供的代码。请发布一些代码来演示您试图完成的任务。我看不出调用共享指令代码并将它们添加到指令:[]
中有什么关系。请编辑问题并在那里添加代码。您不提供或注入组件,只提供服务(除非您希望引用子项中的父项)。请发布一些代码,演示您试图完成的任务。我看不出调用共享指令代码并将它们添加到指令:[
中有什么关系。请编辑问题并在那里添加代码。您不提供或注入组件,只提供服务(除非您希望在子指令中引用父指令).我有几个依赖于app.module的模块,所有模块中我都需要此指令。我试图创建一个共享模块来提供这个指令,但我得到了一个错误:类型Modal是2个模块声明的一部分:Error…从主模块中删除Modal,并将其保留在共享模块中,这可能就是问题所在。你应该提供更多的代码。我有几个依赖于app.module的模块,我需要在所有模块中使用这个指令。我试图创建一个共享模块来提供这个指令,但我得到了一个错误:类型Modal是2个模块声明的一部分:Error…从主模块中删除Modal,并将其保留在共享模块中,这可能就是问题所在。您应该提供更多的代码。