[英]<%= %> 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.