胖箭头功能被重写为正常功能。 '这'未定义

时间:2016-10-24 15:57:15

标签: javascript angular typescript ionic-framework ionic2

我试图将我的应用转换为Ionic2,并且遇到了另一个问题。我有以下代码:

this.database.query("SELECT whatever FROM tab WHERE field = ?", [someVar]).then(
  (result) => {
                this.database.query...

我使用箭头功能确保我仍然可以参考'这个'从而进行另一个db调用。 (注意this.database是一个查询函数返回Promise的服务)

然而,这是错误的" Uncaught(在承诺中):TypeError:无法读取属性'数据库' of null"。当我调试时,我确实可以看到这个'这个'未定义。

当我查看模拟器的源代码时,我看到以下代码(已添加功能):

this.database.query("SELECT whatever FROM tab WHERE field = ?", [someVar]).then(
  function (result) {
                     this.database.query...

添加这个是正常的吗?因为它破坏了我的代码。此外,没有引入任何其他变量来保持对这个'的引用。 怎么解决这个问题?

我的配置:

Typescript 2 installed

"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/compiler-cli": "0.6.2",
"ionic-angular": "2.0.0-rc.1",
"ionic-native": "2.2.3",
"rxjs": "5.0.0-beta.12",
"zone.js": "0.6.21"

"@ionic/app-scripts": "^0.0.36",
"typescript": "^2.0.3"

"module": "es2015",
"moduleResolution": "node",
"target": "es5"

<小时/> 编辑:Plunkr从Ionic2样本分拣再现,它在那里工作 edit2:上面的plunker使用Typescript 1.7 lib。我试图制作一个新的Plunkr,但无法让它工作

<小时/> 最终编辑 最后,它现在有效,但我不能指出原因。我通过git跟踪源代码中的变化,唯一不同的是,在此期间我尝试使用ES6作为目标,我添加了 - 但是再次删除 - 人行横道。此外,我同时为Android构建也许ES6转换或Android构建留下了一些有用的代码?非常讨厌不知道原因..

无论如何,我可能不会尝试进一步分析,因为我一直遇到Ionic2的问题。它看起来还不够稳定。当前的问题包括:黑屏,白屏,标题背后的内容,ios上错误的应用程序图标,经常出现奇怪的行为,Android上的布局问题,......所以目前我还将转向Ionic1:&#39 ;(

0 个答案:

没有答案