Ionic framework JSON.stringify无法序列化循环结构:Ionic/AngularFire应用程序的iOs9错误

Ionic framework JSON.stringify无法序列化循环结构:Ionic/AngularFire应用程序的iOs9错误,ionic-framework,angularjs-ng-repeat,firebase,ios9,Ionic Framework,Angularjs Ng Repeat,Firebase,Ios9,我今天更新了我的Xcode,并在iOs9版本上运行了我的Ionic应用程序。每次我从ng重复列表单击到详细视图时,Xcode控制台上都会弹出新的错误。错误是: error JSON.stringify()ing argument: TypeError: JSON.stringify cannot serialize cyclic structures. 该错误似乎是由AngularFire firebaseObject引起的。下面是如何复制问题(必须构建到ios,并在xcode7中看到错误):

我今天更新了我的Xcode,并在iOs9版本上运行了我的Ionic应用程序。每次我从ng重复列表单击到详细视图时,Xcode控制台上都会弹出新的错误。错误是:

error JSON.stringify()ing argument: TypeError: JSON.stringify cannot serialize cyclic structures.
该错误似乎是由AngularFire firebaseObject引起的。下面是如何复制问题(必须构建到ios,并在xcode7中看到错误):

  • 通过运行以下命令使用Ionic starter侧菜单模板:

    $ sudo npm install -g ionic cordova
    $ ionic start myApp sidemenu
    
  • 按如下方式修改playlisctrl和playlisctrl:

  • .controller('playlysctrl',函数($scope、$firebaseObject、$firebaseArray){
    $scope.playlists=[];
    var ref=新的Firebase(MYFIREBASEURL);
    var tasks=$firebaseArray(ref.child('tasks'));
    $scope.playlists=任务;
    })
    .controller('playlictrl',函数($scope、$stateparms、$firebaseObject){
    var id=$stateParams.playlyid;
    console.log(id);
    var ref=新的Firebase(MYFIREBASEURL);
    var task=$firebaseObject(ref.child('tasks').child(id));
    console.log(任务);
    $scope.task=任务;
    
    });我也有类似的问题。事实证明,这是在以下情况下造成的:

      var userRef = new Firebase(FIREBASE_URL + '/users').child(uid);
      profile = $firebaseObject(userRef);
      console.log(profile)
    
    您是否可能正在尝试记录具有循环依赖关系的firebase数据结构


    尝试删除console.log()行

    删除console.log对我很有效。我必须对我的代码执行以下操作(Ionic Google Analytics插件-)


    这个示例代码中没有任何东西会触发JSON.stringify()。也没有解释播放列表是如何构建的,因此我们无法猜测循环引用将在何处发挥作用。这里也没有版本信息,也没有足够的数据来创建复制。Ops sorry@Kato!我编辑了这篇文章作为你的最后一封电子邮件,我不小心删除了控制器代码(并被HTML替换)。我的错!我添加了所有的控制器代码和我的版本信息。除了上面的更改,我没有修改侧菜单启动器中的任何其他代码。确切地说,我没有在代码中触发任何JSON.stringify(),而是在firebaseObject加载到视图中并触发该错误时触发的!
      // Google Analytics (console.log throws errors)
      return GoogleAnalytics.startTrackerWithId("UA-97459358-1")
        .then(() => {
          //console.log('Google analytics is ready now');
          return GoogleAnalytics.enableUncaughtExceptionReporting(true)
        }).then((_success) => {
          //console.log("startTrackerWithId success")
        }).catch((_error) => {
          //console.log("enableUncaughtExceptionReporting", _error)
        })