Typescript -词法作用域的问题=>这一点
Typescript - Problems with the lexical scoping => this
我的问题是以下功能:
() => this.handleRes(res, this.lobbyInitFn(this.$log, this.lobbyData))
在Ctrl键上获得对我的lobbyData
变量的引用的最佳方法是什么?由于胖箭头语法,我得到一个指向全局window
对象的指针。
目前我只得到lobbyInitFn
方法中$log
函数的引用和dataCol
参数的未定义。
module lobby.controllers {
'use strict';
class LobbyCtrl{
public lobbyData : Array<string>;
constructor(private $scope, private $log : ng.ILogService, private lobbyStorage) {
this.init();
}
private init(){
this.initializeLobbyData();
}
private initializeLobbyData(){
var res = this.lobbyStorage.LobbyRoom().query(
() => this.handleRes(res, this.lobbyInitFn(this.$log, this.lobbyData)),
() => this.handleErr("Error while initializing the lobby data."));
}
private lobbyInitFn(logger, dataCol){
return function(data){
for (var i = 0; i < data.length; ++i) {
logger.log(data[i]);
}
dataCol = data;
}
}
// Common functions => outsourcing
private handleRes(res : any, resFn? : callbackFn) {
if(typeof resFn != 'undefined') {
resFn(res)
} else{
this.$log.log(res);
}
}
private handleErr(err : string, errFn? : callbackFn) {
if(typeof errFn != 'undefined') {
errFn(err)
} else{
this.$log.error(err);
}
}
}
你可以试试:
() => this.handleRes(res, () => this.lobbyInitFn(this.$log, this.lobbyData))
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- gmap3如何做到这一点-它显示圆圈的任何事件
- 硒元素在这一点上是不可点击的
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- AngularJS:有没有比指定的方法更好的方法来实现这一点
- Mootorial在这一点上有多重要或过时
- Javascript递归函数引用了这一点
- 我想听听服务器上的更改,并相应地更新我的网页.我如何用Javascript做到这一点
- JavaScriptEs6在内部函数中引用了这一点
- js并在加载前编辑url-如何做到这一点
- 角度缩小2-有人成功做到这一点吗
- Javascript OOP-在异步回调中丢失了这一点
- 谷歌地图与方向 - 我可以在没有表单标签的情况下做到这一点吗?
- config.fullPage = true;在 ckEditor 内联模式下无法正常工作.如何实现这一点
- window.btoa( // here programcode // ) 如何做到这一点
- 如何在Jquery中实现这一点?(JS到Jquery)
- 这一点.扩展ExtJS FormPanel中的getForm问题
- Typescript -词法作用域的问题=>这一点
- 流星我如何做到这一点,铁路线+模板问题