【发布时间】:2016-06-11 16:59:09
【问题描述】:
尝试按照此处的说明实现 JSON.stringify:Hide certain values in output from JSON.stringify() 并从序列化中排除某些字段,但它不起作用。
例如在我的控制器中,我有以下代码:
.controller('ExampleController', ['$scope', function($scope) {
$scope.event = {
id:1,
title: 'event title',
users: [{
id: 1,
name: 'Anatoly'
},{
id: 2,
name: 'Roman'
}],
private1: 1,
private2: 2
};
var replacer = function(key, value){
console.log(key);
};
$scope.stringified1 = JSON.stringify($scope.event, replacer);
// $scope.stringified = JSON.stringify($scope.event, ['id','title','users','name']);
}]);
为什么console.log(key) 什么都不打印?函数本身被调用,但key参数为空。
我已经在这里完成了 plunker:http://plnkr.co/edit/U6ZcIuPVr5RzMIBl8X6c?p=preview
我正在使用 Angular 1.4.9 和 Chrome 48.0.2564.116
附:我已经用传递的数组完成了这个功能并且它可以工作,但是使用一个函数可以提供更大的灵活性,所以我想了解它为什么不起作用。
【问题讨论】:
-
replacer 不返回任何内容。你想做什么?
-
实际上你帮我解决了这个问题,如果我没有在第一次调用时返回任何值,它将不会在以下属性上被调用:) 请在此处查看更新的 plunker:plnkr.co/edit/h9NU2xppeGuMSTfTyRng?p=preview,谢谢:)
标签: javascript angularjs json stringify