übergeben Sie eine variable aus jade mit javascript
Ich bin versucht, übergeben Sie eine variable aus der route-handler die javascript-Datei.
express-Strecke holt Homepage ist:
exports.home = function(req, res){
var _ajaxData = [ ["#collections","collections", "Collections"],
["#candidates","candidates", "Candidates"],
["#entries","entriess", "Entries"],
["#exits","exits", "Exits"]
];
res.render('home/home', { title: 'Welcome to My Web', _ajaxData: _ajaxData});
};
Und meine jade-Datei sieht wie folgt aus:
extends ../layout/base
block content
each item in _ajaxData
div(id= item[0]).col-md-6
h3.panel-title= title
.panel-body
| Loading content...
script(src='js/home.js')
Und der Inhalt geladen wird unter Verwendung von ajax in home.js das sieht wie folgt aus:
var ajaxData = JSON.stringify('!{_ajaxData}');
console.log(ajaxData);
//Further processing here
Problem: Die Konsole druckt:
"!{_ajaxData}"
wo ich bin auf der Suche, um das gesamte array übergeben, javascript.
Schätzen wissen, alle Erkenntnisse
- FYI: ich erkannte, dass browser das abrufen der home.js ohne Bearbeitung per express. Ich bin jedoch weiterhin neugierig zu wissen, ob es irgendeine bessere Möglichkeit, dies zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie diese zu Ihrem jade-Datei
Alle Ihre Daten sollten nun im
local_data
für Ihren Einsatz inmyScript.js
script(type='text/javascript') | var local_data =!{JSON.stringify(data)}; script(src='javascripts/myScript.js')
.
Charakter, nachdem das Skript z.B.script(type='text/javascript').
so dass Sie code wird als text behandelt und nicht mehr templatingscript
tag war ein js-block und nicht mehr templating; in den letzten Versionen (post 1.0.0 aus dem Speicher), müssen Sie den Punkt am Ende, oder das pipe-Zeichen.