【问题标题】:Server Side Templating Engine to render javascript服务器端模板引擎渲染 javascript
【发布时间】: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


【解决方案1】:

好的,所以在玩了一些之后,我想出了一个解决方案。在构建 html 时,您可以回显一个包含您想要的任何资源的 src 的脚本。在服务器端,通过渲染一个包含模板标记的 js 文件(使用模板引擎)来响应 javascript src 路由,事情就会按照我的意愿工作:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    相关资源
    最近更新 更多