Как обновить существующий объект JS с помощью форм — Angular JS

Как обновить существующий объект JS с помощью форм — Angular JS

Я преобразовываю свой существующий проект в angularJs, и есть объект JS I, который я постоянно обновляю при отправке формы.

autoquoteDTO.js:

$.getAutoQuoteObject = function() { var autoQuoteObject = new autoQuote(); autoQuoteObject.DriverVehicleInfo = new DriverVehicleInfo(); autoQuoteObject.DriverVehicleInfo.Vehicles = []; autoQuoteObject.DriverVehicleInfo.Drivers = []; autoQuoteObject.ApplicationInfo = new ApplicationInfo(); autoQuoteObject.ApplicationInfo.Discount = new Discount(); autoQuoteObject.ApplicationInfo.GeneralPartyInfo = new GeneralPartyInfo(); autoQuoteObject.ApplicationInfo.GeneralPartyInfo.ContactInfo = new Contact(); autoQuoteObject.ApplicationInfo.MostRecentInsurance = new MostRecentInsurance(); autoQuoteObject.RequestedCoverage = new RequestedCoverage(); autoQuoteObject.RequestedCoverage.PolicyCoverage = new PolicyCoverage(); autoQuoteObject.RequestedCoverage.PolicyCoverage.Coverages = []; autoQuoteObject.RequestedCoverage.VehicleCoverage = []; autoQuoteObject.SessionInfo = new SessionInfo(); return autoQuoteObject; } function autoQuote() { this.DriverVehicleInfo = null; this.ApplicationInfo = null; this.RequestedCoverage = null; this.SessionInfo = null; } var DriverVehicleInfo = function() { this.Drivers = []; this.Vehicles = []; this.DriverVehicleUsages = []; }; var Driver = function() { this.ID = null, this.PersonInfo = null, this.DriverRelationshipToApplicant = null, this.DriverRelationshipToApplicantCd = null, this.DriverLicense = null, this.DriverDetails = [], this.Incident = null, this.IsValid = false }; var PersonInfo = function() { this.FirstName = null, this.Initial = null, this.LastName = null, this.Suffix = null, this.SSN = null, this.GenderCd = null, this.BirthDate = null, this.MaritalStatusCd = null, this.OccupationClassCd = null, this.YearsOccupation = null, this.HighestEducation = null, this.AgeInYears = 0, this.SpouseLicenseStatus = null }; var DriverLicense = function() { this.AgeLicense = null, this.USLicenseStatus = null, this.DriverLicenseNumber = null, this.StateProvCd = null }; var DriverDetail = function() { this.DriverDetailCd = null, this.DriverDetailValue = null, this.DriverDetailDate = null }; var Incident = function() { this.ClaimAccidentsCount = null, this.ViolationsCount = null, this.HasLicenseBeenRevoked = null, this.LicenseSuspensionRevokedDate = null, this.HasRequiredCourtOrderedFinancial = null, this.ClaimAccidents = [], this.Violations = [], this.DUIs = [] }; var DUI = function() { this.DateOfDUI = null, this.OtherValues = [] }; var ClaimAccident = function() { this.Id = null, this.ClaimAccidentCd = null, this.displayText = null, this.ClaimAccidentDate = null, this.DateDisplayText = null, this.Comprehensive = null, this.Collision = null, this.RentalReimbursement = null, this.MedicalPayment = null, this.PayToOtherParty = null, this.IsInjury = null, this.IsPropertyDamage = null }; var Violation = function() { this.Id = null, this.ViolationCd = null, this.ViolationDate = null, this.displayText = null }; var Vehicle = function() { this.ID = null, this.VehicleHaveVin = false, this.VehicleIdentificationNumber = null, this.VehicleYear = null, this.VehicleMake = null, this.VehicleModel = null, this.VehicleSubModel = null, this.AntiLockBrakeCd = null, this.AntiTheftDeviceCd = null, this.VehicleUseCd = null, this.NumDaysDrivenPerWeek = null, this.DistanceOneWay = null, this.EstimatedAnnualDistance = null, this.OwnershipCd = null, this.RegistrationStateProvCd = null, this.VehIdentificationNumber = null, this.IsCustomizedOrAltered = null, this.OriginalVehicleCost = null, this.IsValid = false, this.VehicleType = null, this.VehicleVinStub = null, this.ShowVehicleAntiLockBrakeInfo = false, this.VehicleCost = null, this.ShowVehicleCost = false, this.DaytimeLights = null }; var DriverVehicleUsage = function() { this.DriverIDRef = null, this.VehicleIDRef = null, this.Usage = null }; var ApplicationInfo = function() { this.GeneralPartyInfo = null, this.Discount = null, this.MostRecentInsurance = null, this.ConsumerContactAuth = null, this.ConsumerInfoAuthorization = null, this.ConsumerContactMobileAuth = null }; var GeneralPartyInfo = function() { this.MainApplicantDriverIDRef = null, this.Address = null, this.PreviousAddress = null, this.ContactInfo = null, this.ResidenceInfo = null, this.ListedVehiclesRegisteredTo = null, this.CreditScore = 0 }; var AddressInfo = function() { this.Address = null, this.City = null, this.State = null, this.PostalCode = null, this.County = null }; var PreviousAddress = function() { this.Address = null, this.City = null, this.State = null, this.PostalCode = null, this.County = null }; var Contact = function() { this.Phones = [], this.Emails = [] }; var Email = function() { this.EmailTypeCd = null, this.EmailAddress = null }; var Phone = function() { this.PhoneTypeCd = null, this.PhoneNumber = null }; var Residence = function() { this.LengthAtCurrentAddressCd = null, this.ResidenceTypeCd = null, this.NumberDriversInHouseHold = null, this.VehiclesRegistedToInsured = null, this.DriverResidentsFromFL = null, this.CityLimits = null }; var Discount = function() { this.ResidentialInsurancePolicy = null, this.OwnBoat = null, this.OwnMotorCycle = null, this.IsAAAMember = null }; var MostRecentInsurance = function() { this.HasAutoInsurance = null, this.InsuranceCompanyName = null, this.CurrentInsurancePaying = null, this.LengthWithCurrentInsuranceCd = null, this.BodilyInjuryLiabilityLimit = null, this.LengthContinuouslyInsuredCd = null, this.ExpirationDate = null, this.InsuranceCanceledForNonPay = null, this.ClaimDeniedDueToFraud = null }; var RequestedCoverage = function() { this.EffectiveDate = null, this.StateCd = null, this.PolicyCoverage = null, this.VehiclesCoverage = [] }; var PolicyCoverage = function() { this.Coverages = [] }; var Coverage = function() { this.CoverageCd = null, this.CoverageValue = null }; var VehicleCoverage = function() { this.IsValid = false, this.VehicleIDRef = null, this.Coverages = [] }; var SessionInfo = function() { this.SessionId = '', this.SecurityToken = '', this.Zip = '', this.StateCode = '', this.PageName = '', this.PageTheme = '', this.CarrierId = -1, this.ReturnedCarrierTypes = null, this.CoveragePackage = '', this.UseExistingSession = false, this.QuoteStatus = '', this.SID = -1, this.SRC = null, this.SRC_QCP = null, this.Referral = null, this.ClientIP = null, this.BrowserType = null, this.CLK = 0, this.QTR = '', this.CCID = '', this.AFF = '', this.PreviousSessionId = '', this.IgnoreErrors = false, this.RetrieveSource = '', this.PreviousPageName = '' } 

prapareJson.js:

 var prepareAutoQuoteDTO = { postAutoQuoteObj: $.getAutoQuoteObject(), initializeDriverObj: function() { var driverLocObj = new Driver(); driverLocObj.PersonInfo = new PersonInfo(); driverLocObj.DriverLicense = new DriverLicense(); driverLocObj.Incident = new Incident(); return driverLocObj; }, initializeAppInfo: function() { var appInfoLocObj = new ApplicationInfo(); appInfoLocObj.Discount = new Discount(); return appInfoLocObj; }, /* * Initialize Vehicle object for autoQuoteDTO.js */ initializeVehicleObj: function() { var vehicleLocObj = new Vehicle(); return vehicleLocObj; }, rc1Step1DTO: function() { /* * store session info */ var emailId = $('#save_quote_email').val(); if (typeof emailId !== "undefined" {amp}amp;{amp}amp; emailId {amp}amp;{amp}amp; emailId != '' {amp}amp;{amp}amp; emailId != 'Email Address') { var email = new Email(); email.EmailTypeCd = 'PRIMARY'; email.EmailAddress = emailId; this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo = this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo || new Contact(); this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails = []; this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails.push(email); } }; 

обновить JSON на пользовательский код события:

 prepareAutoQuoteDTO.rc1Step1DTO(); 

Новый Angular JS-код, который должен обновить JS-объект:

  (function(){ "use strict"; angular .model("autoQuote") .controller("prepareDTO","prepareDTO") .controller("postDTO","postDTO"); /* * Call actions on page load */ var init = function () { prepareDTO(); } init(); /* * prepare DTO with form elements. */ function prepareDTO() { var vm = this; vm.postAutoQuoteObj = []; } /* * post DTO on form submit and page onload. */ function postDTO() { } }); 

Логика формы должна содержаться в функции prepareDTO .

Ожидаемое поведение : если форма step1 отправлена, то должен быть вызван rc1Step1DTO и данные JS должны быть сохранены.

Ищем предложения для достижения этого и лучших практик.

Плункер моего полного кода http://plnkr.co/edit/VJKrDRMJY3Q73bsCgVwX?p=preview .

Я могу удалить / отредактировать этот файл и все в Angular JS, но застрял, как это сделать в AngularJS.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector