dimanche 26 juin 2016

angular js how to use existing json object

I am converting my existing project to angularJs. There is an Json object I that I keep update on form submit.

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" && emailId && emailId != '' && 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);
        }
};

update json on user event

prepareAutoQuoteDTO.rc1Step1DTO();

Below is my angular js code

 (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()
        {

        }     

 });

Here want to achieve things in prepareDTO funtion.

Looking for suggestions to achieve this. Plunker of my complete code

http://plnkr.co/edit/VJKrDRMJY3Q73bsCgVwX?p=preview what I want to achieve here is if step1 form is submitted rc1Step1DTO should be called and json should save that data.

I can remove this file and everything can be achived in angular js. but stuck how to do that in angularjs.

Aucun commentaire:

Enregistrer un commentaire