Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert object to json in angular

Tags:

angularjs

I am trying to convert object as json In my updateDetails method But am getting undefined in console.log after converting as json.
Whats wrong here?my cod is..

HTML:

<body ng-app="myApp" ng-controller="myCtrl" ng-init="init()">

                <form id="show_details" ng-repeat="data in editProjDetails">
                    <div>
                        <label><input type="text" class="form-control projectName required onlyAlphaNumeric" ng-model="data.ProjectName" ng-disabled="all"></label>
                    </div>
                    <div>
                        <label><input type="text" class="form-control client required onlyAlphabets" ng-model="data.Client" ng-disabled="all"></label>
                    </div>
                    <div id="projectCoOrdBlock">
                        <label><input type="text" class="form-control projectCoOrd  onlyAlphabets" ng-model="data.ProjectCoordinator" ng-disabled="true"></label>
                    </div>
                    <div>
                        <label><input type="text" class="form-control required onsiteCoOrd onlyAlphabets" ng-model="data.OnsiteCoordinator" ng-disabled="all"></label>
                    </div>
                    <div id="resourceBlock">
                        <label><input type="text"  class="form-control resource  onlyNumeric" ng-model="data.ResourceAllocated" ng-disabled="true"></label>
                    </div>
                    <div>
                        <span class="pull-right btnMarginTop">
                            <button class="btn btn-primary" id="projectDetailsEdit" ng-if="!editMode" ng-click="editDetails()">Edit</button>
                            <button class="btn btn-primary" id="projectDetailsUpdate" ng-if="editMode" ng-click="updateDetails(data)">Update</button>
                        </span>
                    </div>
                </form>
</body>

SCRIPT

var app = angular
                    .module("myApp", [])
                    .controller("myCtrl", function ($scope, $http) {
                        $scope.editMode = false;
                        $scope.all = true;
                        $scope.init = function () {
                            $scope.getId();
                        }
                        $scope.getId = function () {
                            var url = document.URL;
                            var id = /id=([^&]+)/.exec(url)[1];
                            var result = id ? id : ' ';
                            $scope.getProjectDetails(result);   
                        }

                        $scope.goEvent = function () {
                            $scope.editMode = !$scope.editMode;
                        } 
                        $scope.updateDetails = function (data) {
                           debugger
                            $scope.editedArrayDetails = [];
                            $scope.editedArrayDetails.push(data);
                            $scope.json = angular.toJson($scope.data);
                            console.log($scope.data)
                            $scope.goEvent();
                        }
                    })

This is my json fromat:

enter image description here

I want to save my data with these names

if ($scope.json) {
                                $scope.json = { "project_id": Id, "name": ProjectName, "client": Client, "onsite_coordinator": OnsiteCoordinator };
                            }

But am getting Id,ProjectName,Client,OnsiteCoordinator is undefined.

like image 268
user7397787 Avatar asked Jun 12 '17 05:06

user7397787


People also ask

What is JSON object in angular?

AngularJS json Filter The json filter converts a JavaScript object into a JSON string. This filter can be useful when debugging your applications. The JavaScript object can be any kind of JavaScript object.

How do I Stringify a JSON object in TypeScript?

Use the JSON. stringify() Method to Convert an Object Into a JSON String in TypeScript. In TypeScript, we will use the JSON. stringify() method to turn any object into a JSON string.


1 Answers

You are passing the data as a parameter, hence you should not use $scope prefix. Instead just use data.

  $scope.updateDetails = function (data) {
                        $scope.editedArrayDetails = [];
                        $scope.editedArrayDetails.push(data);
                        $scope.json = angular.toJson(data);
                        console.log($scope.json )
                        $scope.goEvent();
                    }
like image 130
Alexis Avatar answered Sep 20 '22 17:09

Alexis