摘要:為什么呢官網的截圖是這么說的如果要在模板中調用,就采用的方式。我排查很久,終于明白,原來是因為外部不能直接獲取模板綁定的變量值。可以實現外部獲取模板中綁定的變量值。實屬原創,如有錯誤,敬請指教
我是一只前端,最近初學thinkphp,剛遇到一個問題,覺得值得分享一下。歡迎吐槽 ~
場景是這樣的:
我要用JS調用Controller里面的某個方法獲取json數據,我便使用thinkphp的U方法,發現一直報錯。
首先,我們先弄清楚thinkphp的U方法。
thinkphp函數詳解-U方法
代碼是這樣的:
//common.js里ajax獲取遠程數據 remote: "{:U("Equipment/a")}?q=%QUERY "
報錯是這個:
很明顯是{:U()} 這個方式不能被正確解析。為什么呢?
thinkphp官網的截圖是這么說的:
如果要在模板中調用,就采用 {:U( )}的方式。
我排查很久,終于明白,原來是因為外部JS不能直接獲取模板綁定的變量值。上面中U方法詳解中有講到,在模板中(即view)采用{:U( )}的方式,但是,前端的編碼規范是把JS/CSS獨立出來,盡量不要放在HTML代碼里(HTML代碼在view里),于是我就放在public里。然后便出現了上述出現的問題。模板只是display了那個HTML,不包括我的外部文件,外部JS沒有被渲染,thinkphp目前也沒有機制去解決這個引入外部文件渲染問題。
可以用這種方法來解決。
我在view模板里,用一個隱藏的input,然后value里面設置我要的參數
然后在JS里面獲取改input的value,然在組裝好自己需要跳轉的URL
var aUrl = $("#a").val(); var aUrlP = aUrl + "?q=%QUERY"; remote: aUrlP;
這樣就好了。可以實現外部JS獲取模板中綁定的變量值。
我覺得方法雖然行得通,但是還是會出現代碼冗余,期待有更好版本的TP出現。
實屬原創,如有錯誤,敬請指教!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86378.html
摘要:在此之前我們已經編寫了的首頁視圖,并且配置了和模板,讓能夠正確地處理請求并返回合適的響應。正確引入了靜態文件后樣式顯示正常了。在真正的博客首頁視圖追夢人物的博客的評論區留言。更多教程,請訪問追夢人物的博客。 在此之前我們已經編寫了 Blog 的首頁視圖,并且配置了 URL 和模板,讓 Django 能夠正確地處理 HTTP 請求并返回合適的 HTTP 響應。不過我們僅僅在首頁返回了一句...
摘要:對比常量聲明與聲明常量聲明與聲明,都是塊級聲明。最后一點全局塊級綁定與不同于的另一個方面是在全局作用域上的表現。塊級綁定新的最佳實踐在的發展階段,被廣泛認可的變量聲明方式是默認情況下應當使用而不是。總結與塊級綁定將詞法作用域引入。 var變量與變量提升 使用var關鍵字聲明的變量,無論其實際聲明位置在何處,都會被視為聲明于所在函數的頂部(如果聲明不在任意函數內,則被視為在全局作用域的頂...
摘要:跨線程組之間變量不共享,即使在線程組最外層設置也不支持,解決方案通過后置處理器后置處理程序,將變量設置屬性變為全局的來解決通過后置處理器獲取正則表達式提取的變量值,處理器獲取提取的變量值有以下兩種寫法寫法一腳本內容寫如下代碼打印日志寫 1、跨線程組之間變量不共享,即使在線程組最外層設置也不支...
摘要:大多數模板實現原理基本一致模板字符串首先通過各種手段剝離出普通字符串和模板語法字符串生成抽象語法樹然后針對模板語法片段進行編譯,期間模板變量均去引擎輸入的變量中查找模板語法片段生成出普通片段,與原始普通字符串進行拼接輸出。 前端模板的發展 模板可以說是前端開發最常接觸的工具之一。將頁面固定不變的內容抽出成模板,服務端返回的動態數據裝填到模板中預留的坑位,最后組裝成完整的頁面html字符...
閱讀 3768·2021-08-30 09:47
閱讀 3690·2019-08-30 15:56
閱讀 677·2019-08-30 14:18
閱讀 698·2019-08-29 16:17
閱讀 2065·2019-08-29 11:07
閱讀 642·2019-08-26 13:53
閱讀 3443·2019-08-26 10:26
閱讀 2491·2019-08-23 18:30