【问题标题】:Angular 2 RC 5 NGModule Pass ParamAngular 2 RC 5 NGModule 传递参数
【发布时间】:2017-01-11 07:50:32
【问题描述】:

我在执行 tsc 时遇到此错误。但是,我的应用程序似乎工作。 错误 TS1184:修饰符不能出现在这里。

我正在从 Index.html 调用 Run App

export function RunApplication(url:string)
{
    platformBrowserDynamic().bootstrapModule(createAppModule(url));

}

export function createAppModule(url:string) 
{
    @NgModule({ 
      ..... standard RC5 code here per docs
    })
 export class AppModule {}
    return AppModule;
}

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    问题是你已经在导出函数,所以不需要在函数内部导出,删除它应该可以解决问题。

    export function createAppModule(url:string) 
    {
        @NgModule({ 
          ..... standard RC5 code here per docs
        })
      class AppModule {}
        return AppModule;
    }
    

    【讨论】:

      【解决方案2】:

      我认为您不想将模块放入函数中。试试这样的方法

      @NgModule({ 
          // ..... standard RC5 code here per docs
      })
      export class AppModule {}
      
      
      platformBrowserDynamic().bootstrapModule(AppModule);
      

      【讨论】:

      • 如何将值传递给来自服务器的应用模块?
      • 你说的是路由吗?如果是这样,请查看angular.io/docs/ts/latest/guide/router.html。如果不是,我不确定你的意思。
      • Robin 正在讨论在客户端引导期间注入外部参数,启动值从页面/服务器传入。先前记录的将提供程序传递到 bootstrapModule() 的技术在 RC5 中不起作用,将根模块包装到函数中似乎是一个很好的解决方法:stackoverflow.com/questions/38948463/… 但是当我尝试这样做时,我得到与 OP 相同的错误。不过对我来说,TSC (v2.0.0) 拒绝转译源文件。我想知道这是否与 TSC v1.8 无关
      【解决方案3】:

      找到原因: 只需在“class AppModule”声明之前删除“export”修饰符,一切都会编译! 将静态模块声明包装到函数中后,很容易将其抛在脑后。

      【讨论】:

        【解决方案4】:

        大概您想为您的应用程序预引导提供一些动态数据?

        如前所述,问题是由类的导出引起的。删除它,错误就会消失。

        请参阅here 了解合理示例。

        【讨论】:

          猜你喜欢
          • 2016-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-27
          • 1970-01-01
          • 1970-01-01
          • 2017-02-24
          • 2017-05-12
          相关资源
          最近更新 更多