我想從它從NodeJS路由發送到視圖的變量中捕獲值。 我知道的方式得到HTML(玉)這個值是:獲取由NodeJS路由發送的JS的值
#{name_var}
但我想在JS(JQuery的)這個值,我也可以認爲是通過DOM(例如唯一的出路:創建一個具有隱藏值的div,稍後通過getElementById獲取值)。
但我認爲,這個數據,我發送到視圖中精巧的,它可能是有很大的安全問題......
你覺得呢?有沒有其他的「替代」呢?謝謝。
我想從它從NodeJS路由發送到視圖的變量中捕獲值。 我知道的方式得到HTML(玉)這個值是:獲取由NodeJS路由發送的JS的值
#{name_var}
但我想在JS(JQuery的)這個值,我也可以認爲是通過DOM(例如唯一的出路:創建一個具有隱藏值的div,稍後通過getElementById獲取值)。
但我認爲,這個數據,我發送到視圖中精巧的,它可能是有很大的安全問題......
你覺得呢?有沒有其他的「替代」呢?謝謝。
我想你不想通過艱難的方式將值先放到dom元素中,然後再取出來處理。
您可以直接將值分配給js變量,就像您在html標記中一樣。
像
script(type='text/javascript').
var somevar = "#{serversideValue}";
所以,雖然HTML呈現出翡翠的模板,它會被渲染爲
script(type='text/javascript').
var somevar = "passedValue";
此外,根據從路由器傳遞的值,你可以選擇是否在將值分配給js變量(如#{serversideValue}
或!{serversideValue}
)時是否使用html編碼。
另外,如果你通過路由器變量傳遞一個完整的JSON對象,那麼你不能像上面看到的那樣直接分配它。一種方法是將JSON.stringify()
值從路由器發送出去,並在客戶端JS中使用JSON.parse()
來取回原始對象。
另外你可能想看看this stackoverflow question以瞭解我們現在討論的場景。
完美。它在HTML文件中工作。你錯過了一些東西:你必須在第一行的末尾添加一個點。一個想要更多的東西...我已經檢查了這個代碼來將它添加到JQuery中(在$ document.ready()中)並且它不工作,因爲Jquery沒有得到值...只是將「#{serversideValue 「作爲一個字符串。這並不重要,但我想知道這是否可能。非常感謝你。 – danigonlinea 2014-10-04 12:11:18
只需在瀏覽器中檢查html源代碼,它應該已經呈現了這個值,或者你是說它仍然是'「#{serversideValue}」'那裏? Jquery對這裏的情況沒有任何影響。 – mithunsatheesh 2014-10-04 12:17:20