Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 类之间的类型脚本回调_Javascript_Jquery_Angularjs_Typescript_Callback - Fatal编程技术网

Javascript 类之间的类型脚本回调

Javascript 类之间的类型脚本回调,javascript,jquery,angularjs,typescript,callback,Javascript,Jquery,Angularjs,Typescript,Callback,在Typescript中,我试图从angular控制器向angular服务发送回调,但它不起作用。我使用了Chrome开发工具,并在回调函数的顶部插入了一个断点。永远不要碰到断点。回调函数从不激发 我正在使用fullCalendar jQuery控件。我希望Calendar_LeftClick()方法在CalendarController中定义(这样我就可以访问范围和其他变量),但我希望CalendarService实际调用日历上的事件click CalendarService.ts构建我的fu

在Typescript中,我试图从angular控制器向angular服务发送回调,但它不起作用。我使用了Chrome开发工具,并在回调函数的顶部插入了一个断点。永远不要碰到断点。回调函数从不激发

我正在使用fullCalendar jQuery控件。我希望Calendar_LeftClick()方法在CalendarController中定义(这样我就可以访问范围和其他变量),但我希望CalendarService实际调用日历上的事件click

CalendarService.ts构建我的fullCalendar jQuery控件。(“天哪,他应该使用一个指令!他正在将jQuery与Angular?tsk-tsk一起使用”-是的,我稍后将构建我的指令。现在,我需要弄清楚如何使用TypeScript进行回调。)

在CalendarController.ts中,我完成了以下操作

constructor(...) {
    this.CalendarService.registerClickObserver(() => this.Calendar_LeftClick);
}

public Calendar_LeftClick(event: any, jsEvent: any, view: any) {
    //...other code here
    this.Calendar_CreateTooltip(jsEvent);
}

public Calendar_CreateTooltip(jsEvent: any) {
    if (this.tooltip != null) this.tooltip.destroy();
    this.tooltip = null;
    this.tooltip = $('<div/>').qtip( "option", {
        prerender: true,
        content: {
            text: ' ',
            title: {
                button: true
            }
        },
        position: {
            my: 'bottom center',
            at: 'top center',
            target: 'mouse'
        },
        style: {
            classes: 'qtip',
            width: 300
        },
        show: false,
        hide: false
    }).qtip('api');

    this.tooltip.set({
        'content.text': (api) => {
            return this.$compile($('.tooltip-content').html())(this.$scope);
        }
    }).show(jsEvent);
}
构造函数(…){
this.CalendarService.registerClickObserver(()=>this.Calendar\u LeftClick);
}
公共日历_LeftClick(事件:任意、jsEvent:任意、视图:任意){
//…这里有其他代码
此.Calendar\u创建工具提示(jsEvent);
}
公共日历\创建工具提示(jsEvent:any){
如果(this.tooltip!=null)this.tooltip.destroy();
this.tooltip=null;
this.tooltip=$('').qtip(“选项”{
预渲染:正确,
内容:{
文本:“”,
标题:{
按钮:正确
}
},
职位:{
我的‘底部中心’,
在‘顶尖中心’,
目标:“鼠标”
},
风格:{
类别:“qtip”,
宽度:300
},
秀:假,,
隐藏:假
}).qtip(“api”);
this.tooltip.set({
'content.text':(api)=>{
返回此.compile($('.tooltip content').html())(此.scope);
}
}).show(jsEvent);
}
最终,我要做的是让我的qtip2控件显示出来(这就是我在Calendar\u CreateTooltip中所做的)。我曾经在常规JavaScript中使用它,但现在我切换到TypeScript,它就不起作用了。我做错了什么?

已注册
()=>此。Calendar\u LeftClick
回调返回一个控制器方法(参数和上下文丢失,因为该方法未绑定)。而它应该叫它。应该是

this.CalendarService.registerClickObserver((...args) => this.Calendar_LeftClick(...args));

你已经发布了大约100行代码,只是说它“不起作用”。不工作意味着什么?运行时错误?编译时错误?什么都没发生?你的电脑着火了?@RyanCavanaugh谢谢你让我澄清。我使用了Chrome开发工具,并在回调函数的顶部插入了一个断点。永远不要碰到断点。回调函数从不激发。另外,我的电脑在我打字时着火了;)
this.CalendarService.registerClickObserver((...args) => this.Calendar_LeftClick(...args));