Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从一个类传递到另一个类的Typescript事件_Javascript_Typescript_Ionic Framework - Fatal编程技术网

Javascript 将数据从一个类传递到另一个类的Typescript事件

Javascript 将数据从一个类传递到另一个类的Typescript事件,javascript,typescript,ionic-framework,Javascript,Typescript,Ionic Framework,我知道这是一个相当基本的问题,但半小时的研究仍然没有找到答案 我有两节课。一个是我的谷歌地图API。当点击一个标记时,我想在另一个类上发出事件,并将数据传递给它。 我已经写了一些伪代码,所以你可以想象我想做什么 export class Class1 { someFunctionInClass1() { //some code this.functionHere() } functionHere() { gotanEven

我知道这是一个相当基本的问题,但半小时的研究仍然没有找到答案

我有两节课。一个是我的谷歌地图API。当点击一个标记时,我想在另一个类上发出事件,并将数据传递给它。 我已经写了一些伪代码,所以你可以想象我想做什么

export class Class1 {
    someFunctionInClass1() {
        //some code
        this.functionHere()
    }

    functionHere() {
        gotanEvent() {
            google.maps.event {
                //here i got an event
                and want to pass data to Class2
                functionToCallWhenEventEmits(with the data)
            }
        }
    }
}


import { Class1 } from ../class1Path;

export class Class2 {
    constructor(public class1: Class1) {

    }


    someFunctionInClass2() {
        class1.someFunctionInClass1();
    }

    functionToCallWhenEventEmits(data to pass) {
        //do something
    }
}

希望有人能帮我。:)

如果希望在两个类之间实现类似事件的行为,可以使用观察器设计模式的轻量级版本。您的受试者将只保留一个受试者,而不是维护“受试者列表”

观察者模式是一种软件设计模式,其中一个对象(称为subject)维护其从属对象(称为观察者)的列表,并通常通过调用其方法之一自动通知其任何状态更改。它主要用于实现分布式事件处理系统。()

下面是一个轻量级观察者模式()的示例

谢谢你为我工作:)。我也有一个错误,因为爱奥尼亚不想更新视图。我现在已经修好了。谢谢你的帮助
class Subject
{ 
    private observer :  Observer;

    public Attach(observer: Observer)
    { 
        this.observer  = observer;
    }

    public DoSomething(message: string)
    { 
        if (this.observer != null)
        { 
            observer.Updating(message);
        }
    }
}

class Observer
{ 
    public Updating(message: string)
    { 
        document.writeln(message);
    }
}

var subject = new Subject();
var observer = new Observer();
subject.Attach(observer);
subject.DoSomething("Something happened!");