TP中JS如何獲取模板變量(示例詳解)

下面thinkphp框架教程欄目將給大家介紹php框架中JS優雅獲取模板變量的方式,希望對需要的朋友有所幫助!

hinkphp框架

  let admin={:json_encode($admin)},  //$admin是php數組       level={$level};     console.log(admin, level);
nbsp;html&gt;?? ?? ?? ?<meta>?? ?<title>PHP框架中JS優雅獲取模板變量的方式</title>?? ?<style>    /* 通用的模板數據存放標簽,視覺不可見 */    .data-box {         display: none;     }    </style>?? ?? ?? <!-- 頁面內容 -->?? <h2>Hi,結果請看console</h2> ?? <!-- 數據存儲節點,可以同時存在多個data屬性 -->?? <!-- 如果模板變量是數組,須先轉成json字符串(如$admin) -->?? <div></div>?? ?? ?? <script>     /* 獲取數據的操作 */       /* 初始化頁面渲染時傳過來的js變量 */    let dataContainerElem = document.querySelector(&#39;.data-box&#39;),        data = dataContainerElem ? dataContainerElem.dataset : {},        dataBox = {}; //模板變量容器,`.data-box`類選擇器所在的所有`data`屬性值集合        Object.keys(data).forEach(function (key) {         dataBox[key] = data[key];         if (isJsonString(data[key])) dataBox[key] = JSON.parse(data[key]); //是json格式的字串才轉對象     });       /**     * 判斷字串是否屬于json字串     */    function isJsonString(str) {        let flag = false;           if (typeof str != &#39;string&#39;) return flag;           try {            JSON.parse(str);            flag = true;        } catch (e) {}           return flag;     }   </script>?? ?? <script>     /* 使用數據 */    //所有保存到數據節點的變量都成為`dataBox`對象的屬性     console.log(dataBox.admin, dataBox.level);   </script>?? ?? 

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享