首页 > 解决方案 > 在 Angular Web 应用程序的同一个打字稿文件中导入 TNS 模块

问题描述

Nativescript Angular 以其代码共享特性而闻名。我试图通过仅使用 1 个打字稿文件而不​​是拆分为文件来简化我的.ts设计.tns.ts

我试图import { Page } from "tns-core-modules/ui/page";.ts. 在 Android 上运行时,代码可以完美运行,但如果我ng serve用于 Web 应用程序,它会显示Module not found: Error: Can't resolve 'tns-core-modules/ui/page'.

我之所以要导入页面模块是因为设置了操作栏属性

constructor(private page: Page) { 

  if (isAndroid) {
    console.log("This is Android");
    this.page.actionBarHidden = true;
  }
}

我希望将tns-core-modules/ui/pagetns-core-modules 和其他一些 tns-core-modules 导入到与 Angular Web 应用程序相同的文件中。有可能这样做吗?还是必须拆分为文件.ts.tns.ts文件?

标签: nativescriptangular2-nativescript

解决方案


您必须使用特定于平台的 ts 文件,一个用于 web,一个用于 tns,Page在浏览器中运行时将无效(ng serve)。

如果您喜欢重用大部分代码,请尝试编写一个 common / base ts 组件,从 common / base ts 组件扩展特定于平台的 ts 文件,Page仅在 tns 特定 ts 文件中注入。


推荐阅读