我今天更新了我的 Xcode,并在 iOs9 构建上运行我的 Ionic 应用程序。每次我从 ng-repeat 列表单击到详细 View 时,Xcode 控制台上都会弹出新错误。错误是:
error JSON.stringify()ing argument: TypeError: JSON.stringify cannot serialize cyclic structures.
错误似乎是由 AngularFire 的 firebaseObject 引起的。这是复制问题的方法(必须构建到 ios 并在 xcode7 中查看错误):
通过运行以下命令使用 Ionic starter sidemenu 模板:
$ sudo npm install -g ionic cordova $ ionic start myApp sidemenu
修改PlaylistsCtrl和PlaylistCtrl如下:
.controller('PlaylistsCtrl', function($scope, $firebaseObject, $firebaseArray) {
$scope.playlists = [];
var ref = new Firebase(MYFIREBASEURL);
var tasks = $firebaseArray(ref.child('tasks'));
$scope.playlists = tasks;
})
.controller('PlaylistCtrl', function($scope, $stateParams, $firebaseObject) {
var id = $stateParams.playlistId;
console.log(id);
var ref = new Firebase(MYFIREBASEURL);
var task = $firebaseObject(ref.child('tasks').child(id));
console.log(task);
$scope.task = task;
});
修改2个 View :Playlists和starter模板自带的Playlist如下:
<ion-view view-title="Playlists">
<ion-content>
<ion-list>
<ion-item ng-repeat="playlist in playlists" href="#/app/playlists/{{playlist.$id}}">
{{playlist.$id}} / {{playlist.title}}
</ion-item>
<ion-item class="item-text-wrap">{{task.title}} / {{task.$id}}</ion-item>
</ion-list>
</ion-content>
</ion-view>
<ion-view view-title="Playlist">
<ion-content>
<h1>{{task.$id}}</h1>
<p>{{task.title}}</p>
</ion-content>
</ion-view>
通过运行 $ionic build ios 构建侧边菜单入门应用程序,然后在 xcode7 中打开 xcode 文件。在实际设备上运行——比如 iPhone 5S(我的设备)。在 xcode 日志窗口中记下。
当点击列表项并转到详细播放 ListView 时,它会抛出这样的错误
2015-09-29 10:20:03.868 firebaseObjerr[572:142668] error JSON.stringify()ing argument: TypeError: JSON.stringify cannot serialize cyclic structures.
并添加此处指示的 ios9 修复:enter link description here 没有解决问题。 请帮忙!
[编辑]
这是我的系统信息(因为 Ionic、Cordova 是最新的):
Your system information:
Cordova CLI: 5.3.3
Gulp version: CLI version 3.9.0
Gulp local:
Ionic Version: 1.1.0
Ionic CLI Version: 1.6.4
Ionic App Lib Version: 0.3.8
ios-deploy version: 1.7.0
ios-sim version: 5.0.1
OS: Mac OS X Yosemite
Node Version: v0.12.5
Xcode version: Xcode 7.0 Build version 7A220
对于 firebase 和 AngularFire,我从 firebase CDN 中获取:
<!-- Firebase -->
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/1.1.2/angularfire.min.js"></script>
最佳答案
我遇到了类似的问题。原来是以下场景引起的:
var userRef = new Firebase(FIREBASE_URL + '/users').child(uid);
profile = $firebaseObject(userRef);
console.log(profile)
您是否可能正在尝试记录具有循环依赖性的 firebase 数据结构?
尝试删除您的 console.log() 行。
关于ionic-framework - JSON.stringify 无法序列化循环结构 : iOs9 error for Ionic/AngularFire app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830263/