簡體   English   中英

Typescript / Angular中的<%=%>語法

[英]<%= %> syntax in Typescript/Angular

我正在使用一個名為WEB_HOST的變量的Angular項目。 我可以在另一個文件中看到定義了變量的地方(以某種方式在名為ProjectConfig的類中進行了定義)。

定義(簡體):

export class ProjectConfig {
  WEB_HOST = 'https://example.com'; // I didn't think properties could be assigned here?

  constructor() { ... }
}

現在,從一個完全獨立的* .ts文件,這顯然不起作用:

let x = WEB_HOST; // x is undefined

但是,在同一文件中,一些現有代碼通過使用奇異的字符串插值來設法訪問變量的值:

let x = `<%= WEB_HOST %>`; // x == 'https://example.com'

這里發生了什么? 我以前從未見過這種<%=語法。 它是Angular的一部分嗎? 打字稿? 我尚未找到有關其功能的任何文檔。

我也不知道它是如何設法從ProjectConfig獲取屬性的(並且我也不確定這是否是類屬性...任何類函數之外的定義也使我感到困惑)。

因此,這是ASP標記。

如果您從w3schools看以下內容。 https://www.w3schools.com/asp/showasp.asp?filename=demo_syntax_tags

您將看到它在HTML中用於模板化。 我相信它也可以用於其他文件,因為在客戶端應用程序在您的瀏覽器上運行之前,它已經在服務器上進行了處理。

高溫超導

看起來像ERB,這是Ruby on Rails使用的Ruby模板引擎。 https://codingbee.net/tutorials/ruby/ruby-the-erb-templating-system

其他人提到各種語言使用<%= some_code_here %>進行模板制作。

不管使用什么語言處理它,我都可以想象您的.ts文件通過某個服務器端框架運行,它將在WEB_HOST位置放置一些字符串值,然后將該.ts文件轉換為JS。

您可以在HTML文件上嘗試這種方式

{{window.location.origin}}

如果無法識別window變量,我們可能需要在ts文件中使用

聲明常量窗口;

暫無
暫無

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

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