簡體   English   中英

角色中的弦樂最佳實踐2

[英]Strings Best Practice in Angular 2

我一直在學習Angular 2,並想知道什么是存儲字符串的最佳實踐。 我在整個應用程序中使用各種字符串:有些字符串直接放在HTML元素中,例如,

// sample.html
<h1>This is my title</h1>

其他字符串存儲在綁定到的組件模型中,例如

// boundSample.html
<h1>{{myTitle}}</h1>

// boundSample.component.ts
import ...

@Component({
   templateUrl: 'boundSample.html';
})
export class BoundSampleComponent {
  myTitle = 'This is another title';
}

我擔心的是我的字符串遍布整個應用程序。 來自C#/ WPF背景,我習慣將我的字符串保存在單個位置(例如strings.xaml ),我可以將其導入到代碼和UI標記中(即用於WPF的XAML,用於Angular的HTML)。 這極大地有助於可維護性和國際化。

此外,快速瀏覽角度2的國際化建議使用i18n屬性和i18n tool 這假設我的所有字符串都是用HTML定義的,但是如果我想在代碼中使用其中的一些字符串呢?

如何以及在何處為Angular2中的字符串定義單個位置,以便我可以在代碼中訪問這些字符串並使用國際化工具?

您可以搜索某些工具,其中一些工具很好並且已經實現了您想要的工具。 但是,如果您想按照以前的方式進行操作 ,請執行以下操作:

  1. 將字符串存儲在存儲字符串的XAML / JSON / YAML / etc文件中。 如果您使用webpack,請使用適合您的處理器的裝載器。 如果沒有,您需要自己解析此文件。

  2. 創建一個能夠從文件中獲取信息的服務(我猜想在構造函數中),並且有一個函數可以根據字符串標記返回字符串。

  3. 創建一個基於令牌返回字符串的管道。

  4. 使用HTML中的管道和typescript文件中的服務。

i18n - 沒問題,只需將語言傳遞給服務函數/訂閱服務中的語言更改observable即可。

實施是微不足道的。 但請三思而后行:您可以使用現有的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM