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