[英]passing a value from express to a javascript in jade
我試圖將值傳遞給javascript中的變量,從express傳遞到jade模板。
這是我的快遞路線:
app.get('/tmp', function(req, res){
res.render('tmp', {
title: 'Temperature',
CPU_value : 20,
});
});
然后,這是我的翡翠模板:
html
head
h1= title
p= CPU_value
script(type='text/javascript', src='https://www.google.com/jsapi')
script(type='text/javascript')
- var myCPU_value = CPU_value
google.load('visualization', '1', {packages:['gauge']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Memory', 20],
['CPU', 20],
['Network', 68]
]);
var options = {
width: 400, height: 120,
redFrom: 90, redTo: 100,
yellowFrom:75, yellowTo: 90,
minorTicks: 5
};
var chart = new google.visualization.Gauge(document.getElementById('chart_div'));
chart.draw(data, options);
}
body
#chart_div
傳遞給p
的CPU_value
變量與標題一樣正常工作。 有用。 但是我還不能使用傳遞給函數google.visualization.arrayToDataTable
的數組中CPU_value
的值。
我嘗試過:
...
['CPU', CPU_value],
...
要么
....
var myCPU_value = CPU_value;
....
['CPU', myCPU_value],
....
他們都沒有工作...
如何正確執行此操作?
謝謝
嘗試這個:
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Memory', 20],
['CPU', !{JSON.stringify(CPU_value)}],
['Network', 68]
]);
我不喜歡模板化客戶端javascript的想法,並且在嘗試時無法正常工作。 因此,我的首選解決方案是使用data-*
屬性將數據存儲在dom中,然后從JS訪問它。
//jade
html
head
h1= title
p#cpuValue(data-cpuvalue=locals.CPU_value)= locals.CPU_value
// client js
var myCPU_value =
document.getElementById('cpuValue')
.getAttribute('data-cpuvalue');
...
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Memory', 20],
['CPU', myCPU_value], // or +myCPU_value to coerce String>Number
['Network', 68]
]);
...
chart.draw(data, options);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.