【问题标题】:Angularjs Firebase doesnt work with IE and android browserAngularjs Firebase 不适用于 IE 和 android 浏览器
【发布时间】:2017-10-29 13:19:38
【问题描述】:

我的应用程序在 Google Chrome 上运行良好(在 android 中也是如此),但是当我尝试打开它时抛出 IE 或 android 浏览器,角度代码崩溃。

谁知道这是什么原因??

提前致谢!

卡在这一行

var dbRef = firebase.database().ref().child('Categories/');
  dbRef.once('value', snap => {

    snap.forEach(function(childSnap) {

      $scope.allcats.push(childSnap.val());
      $scope.$apply();
    })

然后按照这个:

image of in the console

这是控制台中显示的错误 SCRIPT5022:[$injector:modulerr]http://errors.angularjs.org/1.6.6/$injector/modulerr?p0=app1&p1=Error%3A%20%5B%24injector%3Anomod%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.6.6% 2F%24injector%2Fnomod%3Fp0%3Dapp1%0A%20%20%20at%20Anonymous%20function%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A26%3A402)%0A%20 %20%20at%20b%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A25%3A420)%0A%20%20%20at%20Anonymous%20function%20(http%3A% 2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A26%3A175)%0A%20%20%20at%20Anonymous%20function%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js %3A42%3A288)%0A%20%20%20at%20p%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A8%3A5)%0A%20%20%20at%20g %20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A42%3A138)%0A%20%20%20at%20hb%20(http%3A%2F%2Flocalhost%3A3000%2Fjs% 2Fangular.min.js%3A46%3A244)%0A%20%20%20at%20c%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A22%3A17)%0A%20% 20%20at%20Uc%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Fangular.min.js%3A2 2%3A325)%0A%2

【问题讨论】:

  • 当它在 Chrome 中运行而在 IE 中不起作用时,可能有一些代码在 IE 中不支持。该错误消息显示具有消息 Failed to instantiate module app1 due to: 的角度链接。也许您可以显示一些您的代码,以供怀疑创建此错误。
  • @egon12 请检查。我更新了问题

标签: javascript angularjs firebase internet-explorer


【解决方案1】:

Internet Explorer 不支持箭头功能,请尝试更改

dbRef.once('value', snap => {

dbRef.once('value', function(snap) {

更新:

还有一些你必须改变的地方。当您使用箭头函数时,this 将引用您通常认为的内容(例如:类、控制器或其他东西)。但是当你使用未命名函数时,this 关键字会引用函数本身。

例如:

this.b = 1
a.onChange( e => {
    console.log(this.b) // works
}

但这行不通

this.b = 1
a.onChange( function(e) {
    console.log(this.b) // will be undefined
}

要解决这个问题,您需要创建引用 this 的变量。

例如:

this.b = 1
var self = this
a.onChange( function(e) {
    console.log(self.b)
}

【讨论】:

  • 是的,它没有给出以前的错误,但是发生了新错误 SCRIPT5007: 无法获取值未定义或在 firebase.js 中为 NULL 的引用的“updateSnapshot”属性
  • 谢谢,但是如果在我的函数中有什么用?
  • 对不起,我没有仔细阅读评论,谁创建了firebase.js文件?你创建了“updateSnapshot”函数/变量吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多