下面thinkphp框架教程欄目將給大家介紹php框架中JS優雅獲取模板變量的方式,希望對需要的朋友有所幫助!
let admin={:json_encode($admin)}, //$admin是php數組 level={$level}; console.log(admin, level);
nbsp;html>?? ?? ?? ?<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('.data-box'), 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 != 'string') return flag; try { JSON.parse(str); flag = true; } catch (e) {} return flag; } </script>?? ?? <script> /* 使用數據 */ //所有保存到數據節點的變量都成為`dataBox`對象的屬性 console.log(dataBox.admin, dataBox.level); </script>?? ??
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END