In angular 5, what is absolutely necessary in order to route using routerLink to another component view?











up vote
-1
down vote

favorite












my router link within company-details.component.html is



<a class="btn btn-white btn-xs" [routerLink]="['/companyDetails', nextCompanyID]">


within my app.module.ts file the following path is present



      { path: 'companyDetails/:companyID', component: CompanyDetailsComponent },


company-details.component.ts has



import { ActivatedRoute, Router, RouterModule, Routes } from "@angular/router";

nextCompanyID: number;


and



  constructor(
private router: Router,


...



this.nextCompanyID = 2;


as necessary.



Im at http://localhost:55588/companyDetails/1 , and when I click the button to navigate, the top bar shows http://localhost:55588/companyDetails/2, but nothing is invoked, such as OnInit. And the view data or lifecycle events dont appear to be re-invoked as expected.



What are the necessary and sufficient steps needed in order for the above routing to work as expected?



the resulting element is



<a class="btn btn-white btn-xs" ng-reflect-router-link="/companyDetails,2" href="/companyDetails/2"><i class="fa fa-chevron-right"></i></a>


which appears okay to me.



something wrong with routerLink?



Ive read
https://v5.angular.io/api/router/RouterLink
and the only clearly defined requirement I can identify is




If you use dynamic values to generate the link, you can pass an array of path segments, followed by the params for each segment.




I appear to be satisfying this requirement. What else is Required?



Any help is appreciated.










share|improve this question
























  • Can you post how you grab the params in your company-details-component
    – Suryan
    Nov 12 at 3:34










  • @Suryan Can you please be more specific?
    – joey
    Nov 12 at 3:35






  • 1




    I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
    – Suryan
    Nov 12 at 3:36










  • nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
    – joey
    Nov 12 at 3:38












  • what does activatedRoute have to do with the my above scenario?
    – joey
    Nov 12 at 3:40















up vote
-1
down vote

favorite












my router link within company-details.component.html is



<a class="btn btn-white btn-xs" [routerLink]="['/companyDetails', nextCompanyID]">


within my app.module.ts file the following path is present



      { path: 'companyDetails/:companyID', component: CompanyDetailsComponent },


company-details.component.ts has



import { ActivatedRoute, Router, RouterModule, Routes } from "@angular/router";

nextCompanyID: number;


and



  constructor(
private router: Router,


...



this.nextCompanyID = 2;


as necessary.



Im at http://localhost:55588/companyDetails/1 , and when I click the button to navigate, the top bar shows http://localhost:55588/companyDetails/2, but nothing is invoked, such as OnInit. And the view data or lifecycle events dont appear to be re-invoked as expected.



What are the necessary and sufficient steps needed in order for the above routing to work as expected?



the resulting element is



<a class="btn btn-white btn-xs" ng-reflect-router-link="/companyDetails,2" href="/companyDetails/2"><i class="fa fa-chevron-right"></i></a>


which appears okay to me.



something wrong with routerLink?



Ive read
https://v5.angular.io/api/router/RouterLink
and the only clearly defined requirement I can identify is




If you use dynamic values to generate the link, you can pass an array of path segments, followed by the params for each segment.




I appear to be satisfying this requirement. What else is Required?



Any help is appreciated.










share|improve this question
























  • Can you post how you grab the params in your company-details-component
    – Suryan
    Nov 12 at 3:34










  • @Suryan Can you please be more specific?
    – joey
    Nov 12 at 3:35






  • 1




    I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
    – Suryan
    Nov 12 at 3:36










  • nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
    – joey
    Nov 12 at 3:38












  • what does activatedRoute have to do with the my above scenario?
    – joey
    Nov 12 at 3:40













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











my router link within company-details.component.html is



<a class="btn btn-white btn-xs" [routerLink]="['/companyDetails', nextCompanyID]">


within my app.module.ts file the following path is present



      { path: 'companyDetails/:companyID', component: CompanyDetailsComponent },


company-details.component.ts has



import { ActivatedRoute, Router, RouterModule, Routes } from "@angular/router";

nextCompanyID: number;


and



  constructor(
private router: Router,


...



this.nextCompanyID = 2;


as necessary.



Im at http://localhost:55588/companyDetails/1 , and when I click the button to navigate, the top bar shows http://localhost:55588/companyDetails/2, but nothing is invoked, such as OnInit. And the view data or lifecycle events dont appear to be re-invoked as expected.



What are the necessary and sufficient steps needed in order for the above routing to work as expected?



the resulting element is



<a class="btn btn-white btn-xs" ng-reflect-router-link="/companyDetails,2" href="/companyDetails/2"><i class="fa fa-chevron-right"></i></a>


which appears okay to me.



something wrong with routerLink?



Ive read
https://v5.angular.io/api/router/RouterLink
and the only clearly defined requirement I can identify is




If you use dynamic values to generate the link, you can pass an array of path segments, followed by the params for each segment.




I appear to be satisfying this requirement. What else is Required?



Any help is appreciated.










share|improve this question















my router link within company-details.component.html is



<a class="btn btn-white btn-xs" [routerLink]="['/companyDetails', nextCompanyID]">


within my app.module.ts file the following path is present



      { path: 'companyDetails/:companyID', component: CompanyDetailsComponent },


company-details.component.ts has



import { ActivatedRoute, Router, RouterModule, Routes } from "@angular/router";

nextCompanyID: number;


and



  constructor(
private router: Router,


...



this.nextCompanyID = 2;


as necessary.



Im at http://localhost:55588/companyDetails/1 , and when I click the button to navigate, the top bar shows http://localhost:55588/companyDetails/2, but nothing is invoked, such as OnInit. And the view data or lifecycle events dont appear to be re-invoked as expected.



What are the necessary and sufficient steps needed in order for the above routing to work as expected?



the resulting element is



<a class="btn btn-white btn-xs" ng-reflect-router-link="/companyDetails,2" href="/companyDetails/2"><i class="fa fa-chevron-right"></i></a>


which appears okay to me.



something wrong with routerLink?



Ive read
https://v5.angular.io/api/router/RouterLink
and the only clearly defined requirement I can identify is




If you use dynamic values to generate the link, you can pass an array of path segments, followed by the params for each segment.




I appear to be satisfying this requirement. What else is Required?



Any help is appreciated.







angular typescript






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 at 3:41

























asked Nov 12 at 3:11









joey

2,0932226




2,0932226












  • Can you post how you grab the params in your company-details-component
    – Suryan
    Nov 12 at 3:34










  • @Suryan Can you please be more specific?
    – joey
    Nov 12 at 3:35






  • 1




    I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
    – Suryan
    Nov 12 at 3:36










  • nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
    – joey
    Nov 12 at 3:38












  • what does activatedRoute have to do with the my above scenario?
    – joey
    Nov 12 at 3:40


















  • Can you post how you grab the params in your company-details-component
    – Suryan
    Nov 12 at 3:34










  • @Suryan Can you please be more specific?
    – joey
    Nov 12 at 3:35






  • 1




    I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
    – Suryan
    Nov 12 at 3:36










  • nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
    – joey
    Nov 12 at 3:38












  • what does activatedRoute have to do with the my above scenario?
    – joey
    Nov 12 at 3:40
















Can you post how you grab the params in your company-details-component
– Suryan
Nov 12 at 3:34




Can you post how you grab the params in your company-details-component
– Suryan
Nov 12 at 3:34












@Suryan Can you please be more specific?
– joey
Nov 12 at 3:35




@Suryan Can you please be more specific?
– joey
Nov 12 at 3:35




1




1




I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
– Suryan
Nov 12 at 3:36




I mean you should do something like in your component i.e. this.activatedroute.params.subscribe(params => fetch data related to the params here)
– Suryan
Nov 12 at 3:36












nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
– joey
Nov 12 at 3:38






nextCompanyID: number; and this.nextCompanyID = 2;. Updated above.
– joey
Nov 12 at 3:38














what does activatedRoute have to do with the my above scenario?
– joey
Nov 12 at 3:40




what does activatedRoute have to do with the my above scenario?
– joey
Nov 12 at 3:40












3 Answers
3






active

oldest

votes

















up vote
1
down vote













Angular creates a new component only when you are navigating from different component, but in your case you are trying to navigate to same component. So angular does not create a new component and in turn ngOnInit will not be triggered. If you want companyId



this.activatedroute.params.subscribe(params => {Get companyId over here})






share|improve this answer




























    up vote
    0
    down vote













    Make sure you have <router-outlet></router-outlet> . This is where the content of the navigated route will be displayed.






    share|improve this answer




























      up vote
      0
      down vote













      My end solution



        ngOnInit() {
      this.activatedRoute.params.subscribe(
      s => {
      // logic here that we want invoked when param is changed
      this.currentCompanyID = +this.activatedRoute.snapshot.params["companyID"];
      this.clearAllForms();
      this.refreshComponentData();
      });
      this.refreshComponentData();


      }



      As mentioned above, navigation between the same component doesnt result in ngOnInit() being invoked. The above solution works well.






      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',
        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%2f53255501%2fin-angular-5-what-is-absolutely-necessary-in-order-to-route-using-routerlink-to%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes








        up vote
        1
        down vote













        Angular creates a new component only when you are navigating from different component, but in your case you are trying to navigate to same component. So angular does not create a new component and in turn ngOnInit will not be triggered. If you want companyId



        this.activatedroute.params.subscribe(params => {Get companyId over here})






        share|improve this answer

























          up vote
          1
          down vote













          Angular creates a new component only when you are navigating from different component, but in your case you are trying to navigate to same component. So angular does not create a new component and in turn ngOnInit will not be triggered. If you want companyId



          this.activatedroute.params.subscribe(params => {Get companyId over here})






          share|improve this answer























            up vote
            1
            down vote










            up vote
            1
            down vote









            Angular creates a new component only when you are navigating from different component, but in your case you are trying to navigate to same component. So angular does not create a new component and in turn ngOnInit will not be triggered. If you want companyId



            this.activatedroute.params.subscribe(params => {Get companyId over here})






            share|improve this answer












            Angular creates a new component only when you are navigating from different component, but in your case you are trying to navigate to same component. So angular does not create a new component and in turn ngOnInit will not be triggered. If you want companyId



            this.activatedroute.params.subscribe(params => {Get companyId over here})







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 12 at 3:59









            Bharathkumar kamal

            764




            764
























                up vote
                0
                down vote













                Make sure you have <router-outlet></router-outlet> . This is where the content of the navigated route will be displayed.






                share|improve this answer

























                  up vote
                  0
                  down vote













                  Make sure you have <router-outlet></router-outlet> . This is where the content of the navigated route will be displayed.






                  share|improve this answer























                    up vote
                    0
                    down vote










                    up vote
                    0
                    down vote









                    Make sure you have <router-outlet></router-outlet> . This is where the content of the navigated route will be displayed.






                    share|improve this answer












                    Make sure you have <router-outlet></router-outlet> . This is where the content of the navigated route will be displayed.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 12 at 3:46









                    Naresh

                    145




                    145






















                        up vote
                        0
                        down vote













                        My end solution



                          ngOnInit() {
                        this.activatedRoute.params.subscribe(
                        s => {
                        // logic here that we want invoked when param is changed
                        this.currentCompanyID = +this.activatedRoute.snapshot.params["companyID"];
                        this.clearAllForms();
                        this.refreshComponentData();
                        });
                        this.refreshComponentData();


                        }



                        As mentioned above, navigation between the same component doesnt result in ngOnInit() being invoked. The above solution works well.






                        share|improve this answer

























                          up vote
                          0
                          down vote













                          My end solution



                            ngOnInit() {
                          this.activatedRoute.params.subscribe(
                          s => {
                          // logic here that we want invoked when param is changed
                          this.currentCompanyID = +this.activatedRoute.snapshot.params["companyID"];
                          this.clearAllForms();
                          this.refreshComponentData();
                          });
                          this.refreshComponentData();


                          }



                          As mentioned above, navigation between the same component doesnt result in ngOnInit() being invoked. The above solution works well.






                          share|improve this answer























                            up vote
                            0
                            down vote










                            up vote
                            0
                            down vote









                            My end solution



                              ngOnInit() {
                            this.activatedRoute.params.subscribe(
                            s => {
                            // logic here that we want invoked when param is changed
                            this.currentCompanyID = +this.activatedRoute.snapshot.params["companyID"];
                            this.clearAllForms();
                            this.refreshComponentData();
                            });
                            this.refreshComponentData();


                            }



                            As mentioned above, navigation between the same component doesnt result in ngOnInit() being invoked. The above solution works well.






                            share|improve this answer












                            My end solution



                              ngOnInit() {
                            this.activatedRoute.params.subscribe(
                            s => {
                            // logic here that we want invoked when param is changed
                            this.currentCompanyID = +this.activatedRoute.snapshot.params["companyID"];
                            this.clearAllForms();
                            this.refreshComponentData();
                            });
                            this.refreshComponentData();


                            }



                            As mentioned above, navigation between the same component doesnt result in ngOnInit() being invoked. The above solution works well.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 12 at 18:00









                            joey

                            2,0932226




                            2,0932226






























                                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.





                                Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                Please pay close attention to the following guidance:


                                • 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%2f53255501%2fin-angular-5-what-is-absolutely-necessary-in-order-to-route-using-routerlink-to%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

                                鏡平學校

                                ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

                                Why https connections are so slow when debugging (stepping over) in Java?