Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用表单更新现有JS对象-Angular JS_Javascript_Jquery_Angularjs_Html - Fatal编程技术网

Javascript 如何使用表单更新现有JS对象-Angular JS

Javascript 如何使用表单更新现有JS对象-Angular JS,javascript,jquery,angularjs,html,Javascript,Jquery,Angularjs,Html,我正在将我现有的项目转换为angularJs,我在表单提交时不断更新一个JS对象 autoquoteDTO.js: $.getAutoQuoteObject = function() { var autoQuoteObject = new autoQuote(); autoQuoteObject.DriverVehicleInfo = new DriverVehicleInfo(); autoQuoteObject.DriverVehicleInfo.Vehicles = [];

我正在将我现有的项目转换为angularJs,我在表单提交时不断更新一个JS对象

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 = ''
}
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);
        }
};
prepareAutoQuoteDTO.rc1Step1DTO();
 (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()
        {

        }     

 });
prapareJson.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 = ''
}
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);
        }
};
prepareAutoQuoteDTO.rc1Step1DTO();
 (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()
        {

        }     

 });
更新用户事件代码上的json:

$.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 = ''
}
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);
        }
};
prepareAutoQuoteDTO.rc1Step1DTO();
 (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()
        {

        }     

 });
应该更新JS对象的新Angular 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 = ''
}
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);
        }
};
prepareAutoQuoteDTO.rc1Step1DTO();
 (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数据

寻找实现这一目标的建议和最佳实践

我的完整代码是


我可以在AngularJS中删除/编辑此文件和所有内容,但在AngularJS中如何执行此操作仍然是个难题。

您可以将所有代码移动到工厂,然后将其注入控制器。 所有其他依赖项(如
驱动程序
)必须在执行之前包含,甚至可以在
prepareDtoFactory
函数中声明

angular
.model("autoQuote")
.controller(dtoController)
.factory(prepareDtoFactory);

function dtoController(prepareDtoFactory){
     prepareDtoFactory.rc1Step1DTO(); //call function from your service, and do something with it
}

dtoController.$inject = ['prepareDtoFactory'];

function prepareDtoFactory(){

    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;
       },
       /*
       * store session info
       */
       rc1Step1DTO: function(){

            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);
            }
        }
    };
    return prepareAutoQuoteDTO;
}
遵循AJ:

HTML

<div ng-controller="prepareDTO as pdt">
  <form novalidate class="simple-form">
    E-mail: <input type="email" ng-model="pdt.user.email" /><br />
    <input type="button" ng-click="pdt.reset()" value="Reset" />
    <input type="submit" ng-click="pdt.update(user)" value="Save" />
  </form>
  <pre>user = {{user | json}}</pre>

</div>
请注意,为避免错误,应将
prepareAutoQuoteDTO.rc1step1To
修改为:


没有足够的信息,您想做什么:以有角度的方式创建表单,并在提交时将数据发布到服务器?如果是这样的话,你应该检查一下网上的“angularjs表单示例”,这样的问题就不适合了。我添加了一个json,在其中我添加了关于ui onload或表单submit的信息。我只是想知道如何在AngualrJS中使用这样的json。我想在autoQuote模型中添加prepareAutoQuoteDTO。你误解了JSON和Javascript对象,JSON是一种串行化格式,它是一个巨大的字符串,在不同的程序之间使用特定格式来交换信息。这里的对象只是普通的Javascript对象,如果将对象传递到$htt.post,angularJS将自动将它们转换为JSON。这种情况经常发生,因为声明多级对象时的Javascript语法与JSON格式完全相同。我怎么能在angular JS中使用sam呢?正如我所说,这不是JSON,而是实例化了Javascript对象。所以在角度上是完全一样的。这是一个非常有用的建议。在第1步和第2步中,我有一个带有输入的表单。当我提交此表单时,我想调用dtoController并将此数据发送到服务器(api)进行保存。如何调用此函数并将数据发送到服务器。当我包含您的代码时,可以在此处看到完整的代码出错。错误[$injector:pget]提供程序“函数prepareDtoFactory()”必须定义$get factory方法。