我试图将对象转换为json在我的updateDetails方法但是在转换为json.Whats错误后在console.log中得到未定义?我的鳕鱼是..
HTML:
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>
脚本
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(); } })
这是我的json fromat:
我想用这些名称保存我的数据
if ($scope.json) { $scope.json = { "project_id": Id,"name": ProjectName,"client": Client,"onsite_coordinator": OnsiteCoordinator }; }
但我得到Id,ProjectName,Client,OnsiteCoordinator是未定义的.
解决方法
您将数据作为参数传递,因此您不应使用$scope前缀.而只是使用数据.
$scope.updateDetails = function (data) { $scope.editedArrayDetails = []; $scope.editedArrayDetails.push(data); $scope.json = angular.toJson(data); console.log($scope.json ) $scope.goEvent(); }