2017-04-12 89 views
-3

我的用例是我有部分的js代碼,我想基於一些用戶權限來渲染,服務器端語言是PHP。服務器端模板引擎渲染javascript

現在我正在使用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 
} 
+0

渲染HTML和JavaScript? –

+0

好吧,如果我正確理解問題,我只是用js文件位置的src回顯各種腳本,然後客戶端請求它們。在Fat Free中,模板文件是.htm文件,基本上是一個模板化的.html文件。然後當我們去下拉的js文件,整個js文件被加載,我沒有模板的方式,在它回來之前 –

+0

js文件的位置可以是php文件,它呈現模板,與它的工作方式相同html,只需輸出正確的http頭來表示輸出是javascript,而不是text/html –

回答

0

好了,經過一番玩弄,我已經找到了一個解決方案。當構建html時,你可以回顯一個腳本,該腳本具有你想要的任何資源的src。在服務器端,通過渲染一個帶有模板標記的js文件(使用模板引擎)來響應javascript src路由,並且事情將按照我希望的方式工作:)