通过道具将数据传递到自定义的网格组件

时间:2019-12-09 02:20:36

标签: javascript angular angular-material

我正在尝试构建一个扩展角材料垫树组件的组件。目标是拥有一个表,该表具有可以扩展和折叠的行的层次结构。我能够或多或少地做到这一点,并且当我直接从组件中的平面文件加载数据时,它就可以正常工作。 Stackblitz示例显示了它处于工作状态。但是,您需要单击Click Me按钮才能查看数据-不知道为什么会这样。

https://stackblitz.com/edit/n4nite-tree-table

我想要的是能够将数据从父组件传递到组件。我尝试了使用@inputproperty={{}}进行此操作的各种方法,但是我无法使其正常工作。我想要的基本上是以下内容:

  
      
  1. app.component.ts调用服务(helper.service)
  2.   
  3. helper服务将html文件的数据传回给树形网格
  4.   
  5. app.component.html通过大括号{{}}
  6. 将数据传递到组件   

注意:在我的实际实现中,helper.service从API调用中获取数据。

我还有一些不太紧迫的问题:

  1. 当我将代码移动到StackBlitz我的mat-icon-buttons时,它们显示展开V形,其背景为灰色。我以为我缺少主项目中的主题或样式。我想知道我在做错什么,以及如何更正此错误,以便将来发布到StackBlitz

  2. 在先前的示例中,每个子项都略有缩进。我相信这是mat-tree-control中的标准。我在代码缩进丢失的途中有些地方安静了一些。我该如何找回这些,或更具体地讲,我为抑制它们做了什么。

  3. 在组件中,我正在使用hack的方法在用于馈送组件的数据的开头添加额外的dummy记录。该行在下面,并且达到了我想要的结果。但是,当我在页面中包含同一组件的第二个副本时,我注意到以下行已插入两次。我希望这会导致我出现问题,并且我做错了一些事情,但是我不确定是什么?

  

treeData.unshift({id:“ dummy”,名称:“ dummy”,类型:“ dummy”,   description:“ dummy”});

1 个答案:

答案 0 :(得分:0)

我已经更新了demo。请检查。希望对您有所帮助。

通过@Input装饰器传递数据

<n4nite-tree-table [facetHierarchy] ="facetHierarchy"></n4nite-tree-table>