相比於使用script構建DOM結構,使用HTML標簽來構建html是一個很好的方式。然而, 並沒有很好的方式可以在js文件中嵌入 HTML 。最好的方式是使用 HTML字符串, 但這很難管理,尤其實在多行HTML的時候。
text.js 能解決這個問題。如果依賴添加了 text!前綴它將會被自動加載。下載該插件並且將它放在應用程序的 baseUrl 目錄(如果想放在其他地方,使用 paths config 進行配置).
You can specify a text file resource as a dependency like so:
require(["some/module", "text!some/module.html", "text!some/module.css"],
function(module, html, css) {
html 變量是some/module.html 文件的文本形式
css變量是some/module.css 文件的文本形式
} );
注意.html 和.css 后綴規定了文件的類型。 路徑"some/module"部分將會根據標准模塊名進行解析:它將使用 baseUrl 和 paths configuration options 進行查找。
對於 HTML/XML/SVG 文件, 有其他的配置選項。你可以傳入一個 !strip, 它將去除XML申明,這樣外部的 SVG 和 XML 文件就能安全地加載到 document 中,同樣的,如果是 HTML,只有 body 標簽內部的部分會被返回。例如:
require(["text!some/module.html!strip"],
function(html) {
//the html variable will be the text of the
//some/module.html file, but only the part
//inside the body tag.
}
);
text 文件通過異步的方式進行加載(XHR) , 所以你只能獲取同域地下的文件 (查看下面XHR 限制條件).
然而, the RequireJS optimizer 將會在模塊中內置 text! 真實text 文件內容參考, 這樣, 依賴text!的模塊能使用其他域的文件
