我今天更新了我的Xcode並在iOs9構建上運行我的Ionic應用程序。每當我從ng-repeat列表單擊到詳細信息視圖時,Xcode控制檯上彈出新的錯誤。錯誤是:JSON.stringify無法序列化循環結構:ios9錯誤的Ionic/AngularFire應用程序
error JSON.stringify()ing argument: TypeError: JSON.stringify cannot serialize cyclic structures.
該錯誤似乎是由AngularFire firebaseObject引起的。這裏是如何複製的問題(有建於iOS和看到xcode7錯誤):
運行使用離子首發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次:播放列表和播放列表來與下面的首發模板:
<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>
\t <p>{{task.title}}</p>
</ion-content>
</ion-view>
運行$離子建立IOS,然後打開Xcode的構建sidemenu啓動應用程序文件在xcode7。在實際設備上運行 - 就像iPhone 5S(我的設備)一樣。在xcode日誌窗口中記下。
當單擊列表項,然後轉到細節播放列表視圖,它拋出錯誤這樣
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 沒有解決的問題。 請幫忙!
[編輯]
這裏是我的系統信息(如離子,科爾多瓦是最新的):
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
而對於火力和AngularFire,我抓住它從火力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>
沒有什麼在這個例子中的代碼將觸發JSON.stringify()。也沒有關於如何構建播放列表的解釋,所以我們無法猜測循環引用的起始位置。 – Kato
這裏也沒有版本信息,也沒有足夠的數據來創建repro。 – Kato
OPS抱歉@加藤!我將帖子編輯爲最後一封電子郵件,並且意外刪除了控制器代碼(並由HTML代替)。我的錯!我添加了所有的控制器代碼,也添加了我的版本信息。除了上述更改外,我沒有修改sidemenu啓動器中的任何其他代碼。確切地說,我沒有在我的代碼中觸發任何JSON.stringify(),並且在firebaseObject加載到視圖中並觸發該錯誤時! –