nativescript - 在 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/page
tns-core-modules 和其他一些 tns-core-modules 导入到与 Angular Web 应用程序相同的文件中。有可能这样做吗?还是必须拆分为文件.ts
和.tns.ts
文件?
解决方案
您必须使用特定于平台的 ts 文件,一个用于 web,一个用于 tns,Page
在浏览器中运行时将无效(ng serve)。
如果您喜欢重用大部分代码,请尝试编写一个 common / base ts 组件,从 common / base ts 组件扩展特定于平台的 ts 文件,Page
仅在 tns 特定 ts 文件中注入。
推荐阅读
- python-3.x - 如何在 Python 中修复这个 geckodriver 错误?
- python - 如何在 PyQt5 的上下文菜单中添加上下文菜单?
- python - 在 Python 中创建直方图
- html - Angular:错误类型错误:无法读取 null 的属性“choice_set”,而数据显示正确
- python - 为什么我编译的 C++ 文件的 .exe 显示通常不会出现的错误?
- ruby-on-rails - 如何使用条带结帐在 Rails 中实施多个计划
- c# - C#列表不断丢失内容
- css - 仅在具有特定类的表的元素上的 CSS 样式
- javascript - 如何从下拉列表中为所有选定项目创建一个容器?
- flutter - 仅在用户拉伸时显示 SliverAppBar