【问题标题】:Angular2 with Material Design LiteAngular2 与 Material Design Lite
【发布时间】:2016-05-22 05:50:15
【问题描述】:

我在我的 angular2 应用程序中添加了以下代码,以帮助 MDL 在应用程序中移动时重新注册组件...

ngAfterViewInit() {
    componentHandler.upgradeDom();
}

虽然它似乎工作正常(如预期的那样),但我收到以下错误...

(16,5): error TS2304: Cannot find name 'componentHandler'.

我对 angular2 和 typescript 还是很陌生,但我想我需要导入一些东西,以便我的代码知道 componentHandler 是什么(即使它必须知道它是什么,因为它可以工作并且没有这个代码就不能工作?? ? 困惑)

【问题讨论】:

  • 任何人在未来看到这个并且遇到涉及路由组件的问题可能想看看this question。处理路由时有一些微妙之处。

标签: javascript typescript angular material-design-lite


【解决方案1】:

如果您使用 cli.angular 工具来生成您的应用程序 这样做,这样就不需要到处复制代码了。

  1. 在 typings.d.ts 文件中添加以下行

       declare var componentHandler: any; 
  2. 将文件引用到您的组件文件中,如下所示

       /// <reference path="../typings.d.ts" /> 

【讨论】:

    【解决方案2】:

    应该可以帮你添加

    declare var componentHandler: any;
    

    在代码的顶部。在 TypeScript 中使用其他 JavaScript 库请参考相应的handbook section。

    【讨论】:

    • 我收到 ReferenceError: componentHandler is not defined .. 我不知道为什么.. 有什么想法吗?
    【解决方案3】:

    我猜你需要添加

    declare componentHandler;
    componentHandler.upgradeDom();
    

    另见Calling JavaScript directly from TypeScript

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 2016-07-15
      • 2016-07-09
      • 2016-10-18
      • 2017-06-18
      • 2016-07-02
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多