2016-07-13 8 views
-1

依存関係を解決するために、コードで$ qを導入しました。私の機能は今何も返されていません。

$ rootScope.AutoQuote = dtoResource.rc1Step1DTO() I console($ rootScope);結果は何も得られません。

autoQuoteちょうどplunker見

(function() { 
    "use strict"; 

angular 
    .module("autoQuote") 
     //Do initalization on page load 
     .run(["$log","$rootScope","$state","dtoResource","questionResource",function($log,$rootScope,$state,dtoResource,questionResource) { 
      $log.info('Post DTO on page load.'); 
      $rootScope.AutoQuote = dtoResource.rc1Step1DTO() 
      .then(questionResource.getQuestions) 
      .then(function(questions){ 
       $rootScope.questions = questions; 
       console.log('Obtained questions. Assigned to rootscope'); 
      }) 
      .then(function(){ 
      console.log('This should be printed after the above methods are done  executing'); 
       console.log($rootScope); 
      })   

     }]) 

// Post DTO 
     .controller("autoQuoteCtrl", ["$log","$scope","$rootScope","dtoResource","$http","$state", function($log,$scope,$rootScope,dtoResource,$http,$state) { 
     $scope.onSubmit = function() { 
      //console.log(angular.element('#save_quote_email').val()); 
      // add check if valid 
      //call function from your service, and do something with it 
      $scope.AutoQuote = dtoResource.rc1Step2DTO(); 
      console.log($rootScope); 
      //console.log($scope); 
      $log.info('hi, I was invoked on form submit'); 
       $http({ 
       method : 'POST', 
       url  : '/rc1/postDto/'+$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","$q", "$rootScope",dtoResource]); 

    function dtoResource($resource,$q, $rootScope) 
    { 

     console.log('here in dto process.'); 
     var prepareAutoQuoteDTO = {   
     postAutoQuoteObj   : getAutoQuoteObject(), 
     /* 
     * store session info 
     */ 
     rc1Step1DTO : function(){ 
     var deferred = $q.defer(); 
     console.log('Inside rc1Step2DTO'); 
     var emailId = '[email protected]'; 
     if (emailId && emailId != '' && emailId != 'Email Address'){ 
      var email   = new Email(); 
      email.EmailTypeCd = 'PRIMARY'; 
      email.EmailAddress = emailId; 
      this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo || new Contact(); 
      this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails = []; 
      this.postAutoQuoteObj.ApplicationInfo.GeneralPartyInfo.ContactInfo.Emails.push(email); 
     } 
     //$rootScope.AutoQuote = prepareAutoQuoteDTO; 
     console.log('Exiting rc1Step2DTO'); 
     deferred.resolve('CA'); 
     return deferred.promise; 
    }, 

    rc1Step2DTO : function(){ 
     var deferred = $q.defer(); 
     /* 
     * Store Driver information into array object 
     * Collect driver info into local array and then reassign them to actual DTO object 
     */ 


     this.postAutoQuoteObj.SessionInfo.UseExistingSession = false; 
     this.postAutoQuoteObj.SessionInfo.PageName   = 'driver'; 
     this.postAutoQuoteObj.SessionInfo.PreviousPageName = 'cars'; 
     //this.setCLK(); 
     deferred.resolve("CA"); 
     return deferred.promise;   
    } 
    }; 
    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 = '' 
    } 

}()); 
+0

特定の問題とは何ですか?デモのログが正しいようです。ボタンは何もしませんが、コントローラに 'getData()'メソッドはありません – charlietfl

+0

あなたは$ rootscopeで探している情報を提供できますか? $ rootScope.questionは実行時にそこにあります。そして、あなたは$ rootScope.AutoQuoteで何をしたいのですか? –

答えて

0

をcontroller.js。修正を加えて新しいものをフォークしました。ここで私は `getAutoQuoteObject」関数で$rootScope.AutoQuoteを設定しています

Plunker link

  • を働いた修正があります。

  • 機能getAutoQuoteObjectは、依存性として$rootScopeが必要です。だから、工場dtoResource

  • の内側に移動し、不要だったこの行を削除

    $rootScope.AutoQuote = dtoResource.rc1Step1DTO().then.....