我想用JSON
将javascript对象转换为angular.toJson
一次。
我的代码是:
$scope.task.tags = [{"id":22,"tag":"printer","created_at":"2016-03-15" }];
$scope.create = function(task) {
tmp.tags = angular.toJson(task.tags);
TaskService.create(tmp);
});
并在html中:
<input type="text" ng-model="task.tags">
<button class="btn btn-success" ng-click="create(task)">save</button>
但是当多次点击button
时,请向我显示{{task.tags}}
,如下所示:
第一个结果:
[{"id":22,"tag":"printer","created_at":"2016-03-15"}]
第二个结果:
"[{\"id\":22,\"tag\":\"printer\",\"created_at\":\"2016-03-15\"}]"
第3个结果:
[{\\\"id\\\":22,\\\"tag\\\":\\\"printer\\\",\\\"created_at\\\":\\\"2016-03-15 09:59:23\\\"}]\""
答案 0 :(得分:2)
尝试使用Angular JSON filter
和angular.isObject
方法:
$scope.create = function(task) {
var taskTagsCopy = angular.copy(task.tags);
tmp.tags = angular.isObject(taskTagsCopy) ? $filter('json')(taskTagsCopy) : taskTagsCopy;
TaskService.create(tmp);
});
我创建了一个JSFiddle example。您可以检查控制台,看看该对象只转换一次。
修改强>
我添加了angular.copy
,因此task.tags
不再更改。