Javascript 如何从app.js文件中的组件类调用函数/方法?Nodejs

Javascript 如何从app.js文件中的组件类调用函数/方法?Nodejs,javascript,node.js,Javascript,Node.js,我是全新的,甚至不知道如何搜索它,我已经创建了菜单和子菜单,我想点击“加载”子菜单,它将从另一个组件js文件调用另一个方法/函数,如何从组件类调用App.js中的方法 App.js: import "./app.scss"; import "./component/*/component.js"; import "./component/*/style.scss"; import registry from "./module

我是全新的,甚至不知道如何搜索它,我已经创建了菜单和子菜单,我想点击“加载”子菜单,它将从另一个组件js文件调用另一个方法/函数,如何从组件类调用App.js中的方法

App.js:

import "./app.scss";
import "./component/*/component.js";
import "./component/*/style.scss";
import registry from "./modules/component-registry";
import fs from "fs";
import util from "util";

import GithubUserFavorites from "../src/component/github-user-favorites/component"



document.addEventListener('DOMContentLoaded', () => registry.listen())

const readFile = util.promisify(fs.readFile);

var menu = new nw.Menu({type: 'menubar'});

menu.createMacBuiltin('GITHUB SEARCH')

var submenu = new nw.Menu();
submenu.append(new nw.MenuItem({label: 'Load', click:function () {



        readFile('/Users/serikovaaiman/Downloads/1.txt', 'utf-8').then((data)=>{
            localStorage.setItem("favorites", JSON.stringify(JSON.parse(data.toString())));
            // this.fire('reading');
            GithubUserFavorites.smth();
            // GithubUserFavorites.viewModel().favorites =JSON.parse(localStorage.getItem('favorites'));
        })

    }}));
menu.append(new nw.MenuItem({label: 'Favorites', submenu: submenu}));

nw.Window.get().menu = menu;
import Component from "../../modules/component";
import twig from "./template.twig"


export default (class GithubUserFavorites extends Component{

    constructor(element){
        super(element);
        this.favorites = {};
        // this.listen('reading',this.smth())
    }


    get viewModel(){
        return {
            favorites: JSON.parse(localStorage.getItem('favorites'))
        }
    }
    smth(){
        console.log("test");

       this.viewModel.favorites=JSON.parse(localStorage.getItem('favorites'));
       this.render();
    }

    add(user){
        console.log(this.favorites);
        this.favorites[user.login] = user;
        localStorage.setItem("favorites",JSON.stringify(this.favorites));
        this.render();
    }




    onRender(){

        this.$$('user').on.click((event, target)=>{
            let login = target.dataset.login;
            delete this.favorites[login];
            localStorage.setItem("favorites",JSON.stringify(this.favorites));
            this.viewModel.favorites=JSON.parse(localStorage.getItem('favorites'));
            this.render();
        });
    }


}).register(twig, 'github-user-favorites');
组件:

import "./app.scss";
import "./component/*/component.js";
import "./component/*/style.scss";
import registry from "./modules/component-registry";
import fs from "fs";
import util from "util";

import GithubUserFavorites from "../src/component/github-user-favorites/component"



document.addEventListener('DOMContentLoaded', () => registry.listen())

const readFile = util.promisify(fs.readFile);

var menu = new nw.Menu({type: 'menubar'});

menu.createMacBuiltin('GITHUB SEARCH')

var submenu = new nw.Menu();
submenu.append(new nw.MenuItem({label: 'Load', click:function () {



        readFile('/Users/serikovaaiman/Downloads/1.txt', 'utf-8').then((data)=>{
            localStorage.setItem("favorites", JSON.stringify(JSON.parse(data.toString())));
            // this.fire('reading');
            GithubUserFavorites.smth();
            // GithubUserFavorites.viewModel().favorites =JSON.parse(localStorage.getItem('favorites'));
        })

    }}));
menu.append(new nw.MenuItem({label: 'Favorites', submenu: submenu}));

nw.Window.get().menu = menu;
import Component from "../../modules/component";
import twig from "./template.twig"


export default (class GithubUserFavorites extends Component{

    constructor(element){
        super(element);
        this.favorites = {};
        // this.listen('reading',this.smth())
    }


    get viewModel(){
        return {
            favorites: JSON.parse(localStorage.getItem('favorites'))
        }
    }
    smth(){
        console.log("test");

       this.viewModel.favorites=JSON.parse(localStorage.getItem('favorites'));
       this.render();
    }

    add(user){
        console.log(this.favorites);
        this.favorites[user.login] = user;
        localStorage.setItem("favorites",JSON.stringify(this.favorites));
        this.render();
    }




    onRender(){

        this.$$('user').on.click((event, target)=>{
            let login = target.dataset.login;
            delete this.favorites[login];
            localStorage.setItem("favorites",JSON.stringify(this.favorites));
            this.viewModel.favorites=JSON.parse(localStorage.getItem('favorites'));
            this.render();
        });
    }


}).register(twig, 'github-user-favorites');
我要调用的方法是smth(); 我尝试在组件寄存器中使用此选项:

this.listen('reading',this.smth())
在app.js中:

    this.fire('reading');