Pass a list of components as input to another component












0















I would like to a pure UI component that can show a grid of other UI components, but the grid UI component must/can not know of the types of the other UI components it has to show in its grid, they can be anything (but of course always a Angular component).



How can I do this? What property type can I use in my grid component to hold a list of totally unknown components? And how do I display the components in the list in my grid layout?



Thank you

Søren










share|improve this question



























    0















    I would like to a pure UI component that can show a grid of other UI components, but the grid UI component must/can not know of the types of the other UI components it has to show in its grid, they can be anything (but of course always a Angular component).



    How can I do this? What property type can I use in my grid component to hold a list of totally unknown components? And how do I display the components in the list in my grid layout?



    Thank you

    Søren










    share|improve this question

























      0












      0








      0








      I would like to a pure UI component that can show a grid of other UI components, but the grid UI component must/can not know of the types of the other UI components it has to show in its grid, they can be anything (but of course always a Angular component).



      How can I do this? What property type can I use in my grid component to hold a list of totally unknown components? And how do I display the components in the list in my grid layout?



      Thank you

      Søren










      share|improve this question














      I would like to a pure UI component that can show a grid of other UI components, but the grid UI component must/can not know of the types of the other UI components it has to show in its grid, they can be anything (but of course always a Angular component).



      How can I do this? What property type can I use in my grid component to hold a list of totally unknown components? And how do I display the components in the list in my grid layout?



      Thank you

      Søren







      angular






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 8:02









      NeigaardNeigaard

      88562554




      88562554
























          1 Answer
          1






          active

          oldest

          votes


















          0














          If I understood correctly, you could make use of inheritance here.



          Create a BaseComponent from where the components members of your grid inherit, and then, in the grid component you can declare an array of BaseComponent.



          Depending on what you want to do next with those members, you need to add them to the entryComponents in your module. You can read more about dynamic components here: https://angular.io/guide/dynamic-component-loader.



          Hope it helps!






          share|improve this answer
























          • You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

            – Neigaard
            Nov 22 '18 at 8:22













          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%2f53426300%2fpass-a-list-of-components-as-input-to-another-component%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          If I understood correctly, you could make use of inheritance here.



          Create a BaseComponent from where the components members of your grid inherit, and then, in the grid component you can declare an array of BaseComponent.



          Depending on what you want to do next with those members, you need to add them to the entryComponents in your module. You can read more about dynamic components here: https://angular.io/guide/dynamic-component-loader.



          Hope it helps!






          share|improve this answer
























          • You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

            – Neigaard
            Nov 22 '18 at 8:22


















          0














          If I understood correctly, you could make use of inheritance here.



          Create a BaseComponent from where the components members of your grid inherit, and then, in the grid component you can declare an array of BaseComponent.



          Depending on what you want to do next with those members, you need to add them to the entryComponents in your module. You can read more about dynamic components here: https://angular.io/guide/dynamic-component-loader.



          Hope it helps!






          share|improve this answer
























          • You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

            – Neigaard
            Nov 22 '18 at 8:22
















          0












          0








          0







          If I understood correctly, you could make use of inheritance here.



          Create a BaseComponent from where the components members of your grid inherit, and then, in the grid component you can declare an array of BaseComponent.



          Depending on what you want to do next with those members, you need to add them to the entryComponents in your module. You can read more about dynamic components here: https://angular.io/guide/dynamic-component-loader.



          Hope it helps!






          share|improve this answer













          If I understood correctly, you could make use of inheritance here.



          Create a BaseComponent from where the components members of your grid inherit, and then, in the grid component you can declare an array of BaseComponent.



          Depending on what you want to do next with those members, you need to add them to the entryComponents in your module. You can read more about dynamic components here: https://angular.io/guide/dynamic-component-loader.



          Hope it helps!







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 22 '18 at 8:09









          Lucian MoldovanLucian Moldovan

          1464




          1464













          • You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

            – Neigaard
            Nov 22 '18 at 8:22





















          • You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

            – Neigaard
            Nov 22 '18 at 8:22



















          You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

          – Neigaard
          Nov 22 '18 at 8:22







          You got me on track here. I now have a base component and a array of those in my component (@Input() cards: CardComponent;), but how do I render them in my template? My template has (<ListView [items]="cards">), but how do I render each component inside this list?

          – Neigaard
          Nov 22 '18 at 8:22




















          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%2f53426300%2fpass-a-list-of-components-as-input-to-another-component%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

          Feedback on college project

          Futebolista

          Albești (Vaslui)