如何在Angular 2+中构建属性网格

时间:2018-08-15 03:29:43

标签: angular ide

我正在Angular 6中构建一个特定于我的域的IDE类型应用程序,我需要允许用户编辑C#对象的属性。想想Windows窗体或Web窗体项目的Visual Studio属性网格,您可以在其中单击表单上的按钮,然后在属性网格中更改按钮的属性(例如颜色,大小,文本等)。 / p>

我的想法是向客户端发送一个json字符串,其中包括对象的属性及其当前值。像这样:

{
"id":1,
"name":"Volume",
"type":"VolumeCalculator",
"properties":
[
  {
    "name":"NumberOfLevels",
    "type":"int",
    "value":2
  },
  {
    "name":"Period",
    "type":"object",
    "properties":
    [
      {
        "name":"From",
        "type":"DateTime",
        "properties":
        [
          {
            "name":"FromDate",
            "type":"Date",
            "value":"01/01/2018"
          },
          {
            "name":"FromTime",
            "type":"Time",
            "value":"12:00:00"
          }
        ]
      },
      {
        "name":"Until",
        "type":"DateTime",
        "value":"02/01/2018 12:00:00"
      }         
    ]
  },
  {
    "name":"TreeType",
    "type":"enum",
    "value":2,
    "options":["Path Graph","Star Like"]
  }
]
}

使用此json字符串,我可以获得构建grid所需的所有信息。不同的数据类型将显示不同的编辑器。 DateTime类型将允许用户单击日历图标以调出日历并选择一个值。 Enum类型将显示一个下拉列表,用户可以在其中从提供的值中进行选择。

我在苦苦挣扎的地方是Angular 6开发的新手。我已经构建了一些更简单的应用程序,所以我熟悉初学者级别的Angular概念。我认为此问题需要一些我不熟悉的高级概念,因此正在寻找指针。也许这应该是指令?也许它只是一个组件本身,不需要任何指令。

我不是要一个完整的解决方案(但是,如果有人想提供我不会抱怨的解决方案),则只是Angular专家的一些指导。

我什至只想购买一个已经提供该功能的库,但是到目前为止,我还找不到支持Angular 6的库。如果有人知道,我很乐意对其进行审查,看看它是否对我有用。

0 个答案:

没有答案