6月份的時候作過一段時間的vue開發,以後換工做,瞭解到目前所在的公司是打算使用node來作服務端渲染,當時對node的接觸不多,或許能夠經過這個項目,可讓我對node有更多的瞭解,因此就決定接受目前這家公司的offer。在開發過程當中遇到了不少問題,在這裏作記錄備忘。
express + jade + layuijavascript
在項目首頁,點設置按鈕會調轉到用戶的設置中心頁面,剛開始是直接經過更改location.href的路徑而且將一些參數拼接到url後面的方式來作頁面跳轉,可是這樣貌似看着不是很好看,因此就決定將跳轉的方式改成post的方式,將須要渲染的數據經過post的方式傳給express路由,下面上一個小例子:html
$.ajax({ url:userPath+'/menu', type:'POST', async:false, data:{ menuArr:JSON.stringify(menuArr) }, success:function(res){ if(res === 'OK'){ location.href = userPath+'/userinfo-company' } }, error:function(error){ console.log(error); } })
router.post('/menu', function(req, res, next) { menuArr = JSON.parse(req.body.menuArr); res.send('OK'); }); router.get('/userinfo-company', function(req, res, next) { subMenuArr = menuArr[0]; res.render( 'userInfo/company', { title: '企業資料', menuArr: menuArr, subMenuArr:subMenuArr } ); });
menu須要從後臺請求,經過jade來渲染,因此須要將menu的數組經過post的方式來傳遞給index路由。vue
作三級聯動的時候,須要給的select動態加載option選項,而且須要動態設置默認狀態,我當時首先想到的就是java
$(".selector").find("option[text='xxx']").attr("selected",true);
可是通過測試這種方法沒有起做用,由於[]是attribute選擇器,text是property,因此選不到,這裏能夠用JQuery的node
$(".selector").find("option:contains('pxx')").attr("selected",true);
選擇器給option設置默認選中狀態。ajax
<p>property是DOM中的屬性,是JavaScript裏的對象,每個dom節點都是一個對象,這些dom對象有不少屬性,例如:clientHeight,className,innerHTML,innerText等;</p>
<p>attribute是HTML標籤上的特性(即:標籤所特有的屬性),它的值只可以是字符串,例如:class,id,value等;</p>
下面一行代碼看懂attribute和property:express
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div class="box" id='obox' title='divTitle' name='divName'></div> <script type="text/javascript"> var obox = document.getElementById('obox'); console.dir(obox); </script> </body> </html>
打印的輸出結果以下,同時咱們還能夠在第四行看到attribute屬性數組