2017-10-16 63 views
0

我在menu模塊內部有一個MenuComponent,我想在另一個模塊的AppComponent中調用該組件的getMenu(path:string)方法。如果他們在不同的模塊中,如何從另一個組件調用組件的方法?

這是我MenuComponent

import { Component, OnInit } from '@angular/core'; 
import { 
TreeComponent, 
TreeNode, 
} from 'angular-tree-component'; 
import { MenuService } from '../../menu.service'; 

@Component({ 
selector: 'menu', 
templateUrl: './menu.component.html', 
styleUrls: ['./menu.component.css'] 
}) 
export class MenuComponent { 

constructor(private menuService: MenuService) { } 

nodes:any; 

getMenu(path:string): void { 
    this.menuService.getData(path).subscribe(data => { 
     // Read the result field from the JSON response. 

     let newValue = JSON.stringify(data).replace('{"Node":', '['); 
     newValue = newValue.substring(0,newValue.length - 1); 
     newValue+="]"; 
     const menu=JSON.parse(newValue); 
     this.nodes = menu; 
     }); 

} 

} 

回答

1

導入模塊,並調用該方法 - 如下所示靜態和實例的版本...在你的情況下,它是一個實例方法,所以第二個例子應該工作。

import { MenuComponent } from './menu'; 

// Static 
MenuComponent.getMenu('...'); 

// or Instance 
const menu = new MenuCompnent(myMenuService); 
menu.getMenu('...'); 

您需要注入菜單服務。您可以導入模塊並以相同的方式構建其中的一個模塊。

查看Angular component interaction docs瞭解如何做到這一點「角度的方式」。在兩個組件之間有許多互相交織的整齊模式。

相關問題