Angular reactive form value don't filled by third-party service












0















I have a reactive address form and third-party service for address lookups (Loqate in my case, and this service injected by injecting script in HTML).



Few of fields can be autocompleted/autofilled by the service (like in the GIF below). And few of fields are required. When user choose one of suggested address - form filled in UI (HTML), but not in Angular form in the component.



How I can detect changes by third-party service and fill form value?



For example form:






this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});





A minimal example of components, but unfortunately without the service on Stackblitz.



enter image description here










share|improve this question

























  • Form Input controls are created in Angular right?

    – Suresh Kumar Ariya
    Nov 27 '18 at 14:42











  • Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

    – SiddAjmera
    Nov 27 '18 at 14:44











  • @SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

    – Art Olshansky
    Nov 27 '18 at 15:11











  • @SureshKumarAriya yes, form controls created in Angular

    – Art Olshansky
    Nov 27 '18 at 15:14











  • @ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

    – SiddAjmera
    Nov 27 '18 at 15:21
















0















I have a reactive address form and third-party service for address lookups (Loqate in my case, and this service injected by injecting script in HTML).



Few of fields can be autocompleted/autofilled by the service (like in the GIF below). And few of fields are required. When user choose one of suggested address - form filled in UI (HTML), but not in Angular form in the component.



How I can detect changes by third-party service and fill form value?



For example form:






this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});





A minimal example of components, but unfortunately without the service on Stackblitz.



enter image description here










share|improve this question

























  • Form Input controls are created in Angular right?

    – Suresh Kumar Ariya
    Nov 27 '18 at 14:42











  • Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

    – SiddAjmera
    Nov 27 '18 at 14:44











  • @SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

    – Art Olshansky
    Nov 27 '18 at 15:11











  • @SureshKumarAriya yes, form controls created in Angular

    – Art Olshansky
    Nov 27 '18 at 15:14











  • @ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

    – SiddAjmera
    Nov 27 '18 at 15:21














0












0








0








I have a reactive address form and third-party service for address lookups (Loqate in my case, and this service injected by injecting script in HTML).



Few of fields can be autocompleted/autofilled by the service (like in the GIF below). And few of fields are required. When user choose one of suggested address - form filled in UI (HTML), but not in Angular form in the component.



How I can detect changes by third-party service and fill form value?



For example form:






this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});





A minimal example of components, but unfortunately without the service on Stackblitz.



enter image description here










share|improve this question
















I have a reactive address form and third-party service for address lookups (Loqate in my case, and this service injected by injecting script in HTML).



Few of fields can be autocompleted/autofilled by the service (like in the GIF below). And few of fields are required. When user choose one of suggested address - form filled in UI (HTML), but not in Angular form in the component.



How I can detect changes by third-party service and fill form value?



For example form:






this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});





A minimal example of components, but unfortunately without the service on Stackblitz.



enter image description here






this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});





this.addressForm = this.formBuilder.group({
Country: ['', Validators.required],
OrderShippingAddressLine1: ['', Validators.required],
OrderShippingAddressLine2: [''],
OrderShippingAddressPostcode: ['', Validators.required]
});






javascript angular typescript angular-reactive-forms angular-forms






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 27 '18 at 15:13







Art Olshansky

















asked Nov 27 '18 at 14:32









Art OlshanskyArt Olshansky

7818




7818













  • Form Input controls are created in Angular right?

    – Suresh Kumar Ariya
    Nov 27 '18 at 14:42











  • Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

    – SiddAjmera
    Nov 27 '18 at 14:44











  • @SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

    – Art Olshansky
    Nov 27 '18 at 15:11











  • @SureshKumarAriya yes, form controls created in Angular

    – Art Olshansky
    Nov 27 '18 at 15:14











  • @ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

    – SiddAjmera
    Nov 27 '18 at 15:21



















  • Form Input controls are created in Angular right?

    – Suresh Kumar Ariya
    Nov 27 '18 at 14:42











  • Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

    – SiddAjmera
    Nov 27 '18 at 14:44











  • @SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

    – Art Olshansky
    Nov 27 '18 at 15:11











  • @SureshKumarAriya yes, form controls created in Angular

    – Art Olshansky
    Nov 27 '18 at 15:14











  • @ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

    – SiddAjmera
    Nov 27 '18 at 15:21

















Form Input controls are created in Angular right?

– Suresh Kumar Ariya
Nov 27 '18 at 14:42





Form Input controls are created in Angular right?

– Suresh Kumar Ariya
Nov 27 '18 at 14:42













Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

– SiddAjmera
Nov 27 '18 at 14:44





Please add some more sample code to work with. It would be great if you could provide a Minimal, Complete, and Verifiable example. You can use StackBlitz to create one.

– SiddAjmera
Nov 27 '18 at 14:44













@SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

– Art Olshansky
Nov 27 '18 at 15:11





@SiddAjmera I created an example of my components, but unfortunately, I can't integrate service (because it's paid a service) - stackblitz.com/edit/angular-auyzjh

– Art Olshansky
Nov 27 '18 at 15:11













@SureshKumarAriya yes, form controls created in Angular

– Art Olshansky
Nov 27 '18 at 15:14





@SureshKumarAriya yes, form controls created in Angular

– Art Olshansky
Nov 27 '18 at 15:14













@ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

– SiddAjmera
Nov 27 '18 at 15:21





@ArtOlshansky, your StackBlitz doesn't have the implementation of this "thing" that you're using. I'd urge you to subscribe to the valueChanges on the form to check if chainging the value on the Post code field actually changes the value of the Address Line 1 field.

– SiddAjmera
Nov 27 '18 at 15:21












2 Answers
2






active

oldest

votes


















0














You can use detectChanges() in built angular function to detect changes automatically.You can get more information on this link. If you still face issue share code and angular version.






share|improve this answer































    0














    If you use Loqate (as I do), you need to know about pca object in you window object.



    Loqate support sent me that piece of code for triggering change event






    pca.on("data", function(source, key, address, variations) {
    if (source === "address") {
    for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
    var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
    if (pcaField) {
    pca.fire(pcaField, "change");
    };
    };
    };
    });





    Few more strings of code for change/patch form controls value and updateValueAndValidity, and that works






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53501990%2fangular-reactive-form-value-dont-filled-by-third-party-service%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      You can use detectChanges() in built angular function to detect changes automatically.You can get more information on this link. If you still face issue share code and angular version.






      share|improve this answer




























        0














        You can use detectChanges() in built angular function to detect changes automatically.You can get more information on this link. If you still face issue share code and angular version.






        share|improve this answer


























          0












          0








          0







          You can use detectChanges() in built angular function to detect changes automatically.You can get more information on this link. If you still face issue share code and angular version.






          share|improve this answer













          You can use detectChanges() in built angular function to detect changes automatically.You can get more information on this link. If you still face issue share code and angular version.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 27 '18 at 14:42









          Ashu KharbandaAshu Kharbanda

          12




          12

























              0














              If you use Loqate (as I do), you need to know about pca object in you window object.



              Loqate support sent me that piece of code for triggering change event






              pca.on("data", function(source, key, address, variations) {
              if (source === "address") {
              for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
              var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
              if (pcaField) {
              pca.fire(pcaField, "change");
              };
              };
              };
              });





              Few more strings of code for change/patch form controls value and updateValueAndValidity, and that works






              share|improve this answer




























                0














                If you use Loqate (as I do), you need to know about pca object in you window object.



                Loqate support sent me that piece of code for triggering change event






                pca.on("data", function(source, key, address, variations) {
                if (source === "address") {
                for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
                var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
                if (pcaField) {
                pca.fire(pcaField, "change");
                };
                };
                };
                });





                Few more strings of code for change/patch form controls value and updateValueAndValidity, and that works






                share|improve this answer


























                  0












                  0








                  0







                  If you use Loqate (as I do), you need to know about pca object in you window object.



                  Loqate support sent me that piece of code for triggering change event






                  pca.on("data", function(source, key, address, variations) {
                  if (source === "address") {
                  for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
                  var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
                  if (pcaField) {
                  pca.fire(pcaField, "change");
                  };
                  };
                  };
                  });





                  Few more strings of code for change/patch form controls value and updateValueAndValidity, and that works






                  share|improve this answer













                  If you use Loqate (as I do), you need to know about pca object in you window object.



                  Loqate support sent me that piece of code for triggering change event






                  pca.on("data", function(source, key, address, variations) {
                  if (source === "address") {
                  for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
                  var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
                  if (pcaField) {
                  pca.fire(pcaField, "change");
                  };
                  };
                  };
                  });





                  Few more strings of code for change/patch form controls value and updateValueAndValidity, and that works






                  pca.on("data", function(source, key, address, variations) {
                  if (source === "address") {
                  for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
                  var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
                  if (pcaField) {
                  pca.fire(pcaField, "change");
                  };
                  };
                  };
                  });





                  pca.on("data", function(source, key, address, variations) {
                  if (source === "address") {
                  for (var i = 0; i < pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields.length; i++) {
                  var pcaField = document.getElementById(pca.platform.productList[key].PLATFORM_CAPTUREPLUS.bindings[0].fields[i].element);
                  if (pcaField) {
                  pca.fire(pcaField, "change");
                  };
                  };
                  };
                  });






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Dec 3 '18 at 10:29









                  Art OlshanskyArt Olshansky

                  7818




                  7818






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53501990%2fangular-reactive-form-value-dont-filled-by-third-party-service%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

                      Calculate evaluation metrics using cross_val_predict sklearn

                      Insert data from modal to MySQL (multiple modal on website)