2016-07-07 17 views
0

ステート変更時に呼び出される関数のリストを持つファクトリを作成しました。 ページの読み込み時にdtoResource.rc1Step1DTO()を呼び出しています。 機能は実行されましたが、コンソールに結果が表示されると、定義されていません。以下は enter image description here

コードautoQuoteCtrl.js

(function() { 
    "use strict"; 

angular 
    .module("autoQuote") 
     //Do initalization on page load 
     .run(["$log","$rootScope","$state","dtoResource",function($log,$rootScope,$state,dtoResource) { 
      $log.info('Post DTO on page load.'); 
      //$log.info("Value="+ angular.element('#save_quote_email').val()); 
      $rootScope.postAutoQuoteObj = dtoResource.rc1Step1DTO(); 
      console.log($rootScope); 
      $rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) { 
      if (fromState.name === "") { 
       // The initial transition comes from "root", which uses the empty string as a name. 
       //$log.info("Value="+ angular.element('#a1').val()); 
      } 
      }); 
     }]) 
     // Post DTO 
     .controller("autoQuoteCtrl", ["$log","$scope","dtoResource","$http","$state", function($log,$scope,dtoResource,$http,$state) { 
     $scope.onSubmit = function() { 
      // add check if valid 
      //call function from your service, and do something with it 
      dtoResource.rc1Step1DTO(); 
      //console.log($scope); 
      $log.info('hi, I was invoked on form submit'); 
       $http({ 
       method : 'POST', 
       url  : '/rc1/getQuestions/'+$state.current.name, 
       data: {'name': 'praveen', 'email': '[email protected]'}, 
        headers: { 
         'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8;' 
        } 
       //data : { dtoObj: '' }, // pass in data as strings //JSON.stringify(prepareAutoQuoteDTO.postAutoQuoteObj) 
       // headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload) 
      }) 
      .success(function(data) { 
       console.log(data); 
       if (!data.success) { 

       } else { 
        // if successful, bind success message to message 
        //$scope.message = data.message; 
        //$state.go('step2'); 
       } 
      }); 
     };    
    }]); 

}()); 

dtoResource.js

(function() { 
    "use strict"; 

    angular 
     .module("autoQuote") 
     .factory("dtoResource",["$resource",dtoResource]); 

    function dtoResource($resource) 
    { 
     console.log('here in dto process.'); 
     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 = '[email protected]';//angular.element('#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; 
} 



function getAutoQuoteObject() 
    { 
     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; 
    } 

function DriverVehicleInfo() 
    { 
     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 = '' 
    } 

}()); 

である私が何かをしないのです、この修正プログラムを入手するために提案してください。

+1

'rc1Step1DTO()関数の興味深い名前、覚えやすいです:) – madalinivascu

+1

'(typeof emailId!== "undefined" && emailId ... 'は失敗していませんか? – k102

+0

いいえ、その –

答えて

0

私はここで何かが足りない:

$rootScope.postAutoQuoteObj = dtoResource.rc1Step1DTO(); 

をしかし、あなたのrc1Step1DTO機能がpostAutoQuoteObjが未定義より他に何もすることができますどのように何かを返すされていませんか?

+0

上記のコードはdtoResource内に配置されています)関数はjqueryから取り出され、jqueryで動作していましたが、私はangualrjsで同じことをしようとしていますが、ここにはまっています。 –