Javascript 角度2-如何使用其他组件的功能?

Javascript 角度2-如何使用其他组件的功能?,javascript,angular,typescript,Javascript,Angular,Typescript,假设我们有3个组件,其中一个有一些我想在其他组件中使用的功能。所有这些组件都位于同一级别(同级) 我应该怎么做才能从其他组件访问getData函数?我知道我可以创建SharedService并将其注入到指定的组件中,但是还有其他方法,比如使用静态函数之类的吗 感谢您为什么要使用组件?Angular 2说,您必须使用服务来检索数据和重构数据,对单独的服务的访问使组件保持精简,并专注于支持视图。它还使使用模拟服务对组件进行单元测试变得更容易 您可以将其放入服务和插入服务中要使用该功能的每个组件 将该

假设我们有3个组件,其中一个有一些我想在其他组件中使用的功能。所有这些组件都位于同一级别(同级)

我应该怎么做才能从其他组件访问getData函数?我知道我可以创建SharedService并将其注入到指定的组件中,但是还有其他方法,比如使用静态函数之类的吗


感谢您

为什么要使用组件?Angular 2说,您必须使用服务来检索数据和重构数据,对单独的服务的访问使组件保持精简,并专注于支持视图。它还使使用模拟服务对组件进行单元测试变得更容易

您可以将其放入
服务
插入
服务
中要使用该功能的每个
组件

将该服务添加到
应用程序模块的提供者中
,并注入构造函数,如

file1.ts

@Injectable()
export class ComponentWithFunction() {
    function getData() {
        console.log('data has been fetched');
    }
}

file2.ts
export class ComponentA() {
    constructor(private service: ComponentWithFunction)
}

file3.ts
export class ComponentB() {
    constructor(private service: ComponentWithFunction)
}

有关详细信息,请参见。

为什么使用组件?Angular 2说,您必须使用服务检索数据和重构数据,对单独服务的访问使组件保持精简,并专注于支持视图。它还使使用模拟服务对组件进行单元测试变得更容易

您可以将其放入
服务
插入
服务
中要使用该功能的每个
组件

将该服务添加到
应用程序模块的提供者中
,并注入构造函数,如

file1.ts

@Injectable()
export class ComponentWithFunction() {
    function getData() {
        console.log('data has been fetched');
    }
}

file2.ts
export class ComponentA() {
    constructor(private service: ComponentWithFunction)
}

file3.ts
export class ComponentB() {
    constructor(private service: ComponentWithFunction)
}

有关更多信息,请参见。

因此,可能是不同的示例

假设我有一个组件负责页面上的模态元素。 这种组件的上下文有逻辑、方法如打开、关闭、刷新等


据我所知,要从不同的组件中使用open()或close()方法,我必须将Modal创建为一个服务,并将其注入到我想要使用它的所有地方,对吗?没有从Modal订阅事件/方法的选项?

因此,可能是不同的示例

假设我有一个组件负责页面上的模态元素。 这种组件的上下文有逻辑、方法如打开、关闭、刷新等


据我所知,要从不同的组件中使用open()或close()方法,我必须将Modal创建为一个服务,并将其注入到我想要使用它的所有地方,对吗?没有从Modal订阅事件/方法的选项?

根据经验法则,始终使用服务检索数据请参见:“我们创建一个可重用的服务来管理我们的hero数据调用”@user3844198如果这对您有帮助,您可以标记为正确并帮助他人轻松查找。根据经验法则,始终使用服务检索数据请参见:“我们创建了一个可重用的服务来管理我们的hero数据调用“@user3844198如果这对您有帮助,您可以标记为正确,并帮助其他人在此处轻松找到它。您需要将模态组件添加到另一个组件中。是吗?因此,您可以为模态组件提供一个模板变量,如
参见此处。您需要将模态组件添加到另一个组件中。是吗?因此,您可以为模态组件提供一个模板变量,如