javascript - 前端開發框架express,在他的模板引擎下怎么給按鈕添加綁定事件?
問題描述
工作中用到了express,也是第一次使用express模板引擎也是一時半會適應不了!不過這不是重點。第一個問題:怎么添加點擊事件(類似vue,angular什么的寫法:v-bind=xxx???有這樣的??)
ul(class='communityList') each item in tree a(href='http://www.aoyou183.cn/wenda/joingroup/1') li(class='CommList') p(class='comLogo') if item.img img(src='http://www.aoyou183.cn/wenda/8085.html#{item[’img’]}') else img(src='http://cdn.duitang.com/.thumb.600_0.jpeg') p(class='content') p(class='cTitle')=item[’name’] p(class='comInfo')='簡介:' + item[’content’] if item[’join’] == 0 p(class='button')='加入' /* 我想給這個按鈕添加點擊事件 */ else a(href='http://www.aoyou183.cn/wenda/8085.html' class='ybutton')='已加入'
第二個問題:頁面數據全從接口拿所以:
router.get(’/join’, function (req, res, next) { request.post({url: ’https://api.xxx.com/bbs/list’, form: {userId: 10000}}, function (err, httpResponse, body) {body = JSON.parse(body);res.render(’join’, {tree: body[’return’]}); }); /* 如果把第二個接口寫在這里 也不行,再次render 會報錯?。?! */});
這一個接口只能拿頁面的一部分數據,但是,還有一部分數據需要訪問另一個接口,總不能寫兩次路由吧(上面那個是用路由寫的)?寫兩個也沒用啊。
問題就是這兩個,不知道表達清楚沒有。1、怎么給元素綁定事件?2、怎么在同一個頁面上訪問兩個接口
問題解答
回答1:1.可以直接在元素上寫onclick='要執行的函數',或者在模板底部引入新js,在js中查找dom元素綁定,比如var ele=document.getElement('button').addEventlistener('click',function(){要執行的邏輯})2.可以綁定動態name,或者加個參數判斷
回答2:第一個問題:https://forum-archive.vuejs.o...第二個問題:你可以在后端請求兩個接口,然后把兩個接口請求到的數據放進一個對象里面在頁面上使用,也可以前端頁面用js請求另一個接口的數據然后使用
回答3:另外寫一個js文件,在pug里面通過script標簽引入,js文件要用express的static方法包裝一下。
比如在koa下的寫法:
app.use(mount(’/static’, serve(__dirname + ’/app/static’)));
