【问题标题】:Best practice for string String in Ionic 3Ionic 3 中字符串 String 的最佳实践
【发布时间】:2018-03-15 09:14:00
【问题描述】:

在 Ionic 3 中存储所有应用字符串的最佳做法是什么。我应该创建一个数据提供程序并将所有字符串存储为常量吗?

【问题讨论】:

  • 也请看一下this ionic-related answer
  • @sebaferreras OpaqueToken 已被 Angular 4 中的 InjectionToken 弃用。我建议更新该答案:)
  • 感谢@suraj 指出这一点。好像我对同一个问题有两个不同的答案......我已经更新了评论的链接并撤回了我的近距离投票,因为它是错误的答案。

标签: string angular ionic-framework ionic3 provider


【解决方案1】:

方法有很多种,不过我这里选择了很简单的方法,就是创建一个static class,如下图。

注意:我从我的工作项目中提取了以下示例。

常量文件:

Handlers.ts

export class Handlers {
    static BUDGET_PAGE_TOTAL_HANDLER = "budget-page-total-handler";
    static NEW_PROJECT_PAGE_BUDGET_HANDLER = "new-project-page-budget-handler";
    static HOME_PAGE_TRANSACTION_HANDLER = "home-page-transaction-handler";
}

这样使用:

.ts

import { Handlers } from '../../constants/Handlers'; 

eventHandlers() {
  this.events.subscribe(Handlers.HOME_PAGE_TRANSACTION_HANDLER, this.transactionHandler);
  }

【讨论】:

  • 有趣.. 虽然 Angular 的方式是使用 injectiontoken 并在必要时注入构造函数
  • 是的.. 有多种方法。我在这里选择了非常简单的方法并且工作正常:) @suraj
  • 唯一的区别是注入 类的实例(而不是直接使用类中的静态属性)将允许您编写以更简单的方式进行单元测试(您可以轻松地模拟所有内容)。但它们都应该正常工作
  • 谢谢。如果我使用常量而不注入构造函数,还有什么问题吗?
  • 您没有在项目中声明 ngx-translate 内容的任何原因。然后使用翻译服务/翻译管道加载内容? ionicframework.com/docs/developer-resources/ng2-translate
猜你喜欢
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 2010-11-10
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多