typescript - 如何在 Angular 2 中将 "String"值转换为 "Type"

标签 typescript angular ionic2

我想在 ionic 2 应用程序中创建一个侧边菜单,其中页面导航组件放置在借助 menuService.getMenu 函数获取的外部 json 文件中。

我的 JSON 结构:

"menu":[
        {
          "title":"Grid",
          "component":"GridPage"
        }
      ]

我的 Ts:

    this.menuService.getMenu().then((menu) => {
    this.menu = menu;
    });

    openPage(menu) {
      console.log("menu", menu.component);
      nav.setRoot(menu.component);
    }

控制台日志打印字符串 GridPage。我尝试使用 Type as Type(menu.component) 进行转换。但是我在控制台中的结果是一个具有匿名名称的函数。请有人帮助我将 json 字符串转换为组件“类型”以便导航正常工作。

最佳答案

我想有一种方法可以通过字符串获取类的类型,但我不知道(我不使用 TS)。一个简单的解决方法是

创建一个从字符串到类型的映射

classes = {
  'MyClass1': MyClass1,
  'MyClass2': MyClass2,
  'Grid': Grid
}

然后只查找类型

class['Grid']

缺点是需要提前知道所有支持的类。

关于typescript - 如何在 Angular 2 中将 "String"值转换为 "Type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356988/

相关文章:

javascript - 如何将 ionic 网格内的元素居中?

javascript - CSS 上下折叠元素动画

javascript - 如何在 Javascript 正则表达式中使用变量?

javascript - 使用汇总将 TypeScript 构建到 JavaScript 时如何删除注释

css - PrimeNG 数据表设置 rowStyleClass 是设置高亮样式

Angular 单元测试异步与同步问题

html - 为 mat-select 预选多个值 - Angular 6

typescript - TypeORM:如何按关系字段排序

ruby-on-rails - Angular 依赖注入(inject) - @Injectable() 在测试中失败,而 @Inject() 有效

gradle - Ionic 2 在构建 android 时出现异常 - 无法解析 gradle