【发布时间】:2017-09-08 11:58:45
【问题描述】:
我的用例是我有部分 js 代码,我想根据一些用户权限呈现,服务器端语言是 PHP。
现在我正在使用 Fat Free 框架,但即使在其他框架中,如 laravel,我也只能找到模板化 HTML 的模板。
我知道我可以使用现有的模板引擎来仅使用条件模板逻辑在给定特定用户权限的情况下打印<script> 标记,但我还没有找到任何关于如何在 .js 文件中执行以下操作的示例
例子:
PHP:
$visible = ['section1' => true, 'section2' => true];
//this just renders the js file
render('test.js', ['visible' => $visible]);
test.js:
`//this is some kind of templating format`
{{if(isset($visible['section1']))}}
var a = 'Gin';
function sectionA(){
//do something
}
{{endif}}
{{if(isset($visible['section3']))}}
var b = 'Rum';
function sectionB(){
//do something
}
{{endif}}
结果是 test.js 会被渲染为
var a = 'Gin';
function sectionA(){
//do something
}
【问题讨论】:
-
渲染html和javascript有什么区别?
-
好吧,如果我正确理解了这个问题,我只是用 js 文件位置的 src 回显各种脚本,然后客户端请求它们。在 Fat Free 中,模板文件是 .htm 文件,基本上是一个可模板化的 .html 文件。然后当我们去拉下 js 文件时,整个 js 文件都被加载了,我无法在它回来之前进行模板化
-
js文件位置可以是php文件,渲染模板,和html一样,只是从php输出正确的http头来表明输出的是javascript,而不是text/html
-
以这种方式生成 JavaScript 会使其难以维护和调试。你这样做是为了解决什么问题?
-
Lashane,我猜你的意思是这样的:stackoverflow.com/questions/531311/…。我得再研究一下,看起来它可能适合我的目的,虽然不是我最初设想的模板。
标签: javascript php template-engine