我有一个用express编写的node.js服务器,并在某个时刻将一个数组发送到某个.jade页面。问题在于,渲染Jade页面时,Jade编译器将数组呈现为[object Object]
,而Chrome上的JavaScript编译器则抱怨说“意外标识符”。
这是Jade代码:
!!! 5
html(lang="en")
head
title= "Rankings"
body
h1 Ranking
div(id="rankings")
script(type='text/javascript')
function fillRanking(){
var rankArray = #{ranking};
alert("inside fillranking");
var divElement = document.getElementById("rankings");
for(var i = 0; i< rankArray.length; i++){
divElements.innerHTML += "" + i+1 + ". " + rankArray[i].Username + " " + rankArray[i].Points;
}
}
fillRanking();
如您所见,这确实很简单,我只是#{ranking}
将由node.js传递给Jade
的变量内所给的信息填充到div中。第二行的警报不会触发,因为一旦我尝试分配#{ranking}
变量,就会发生“意外标识符”错误。
以下是我的node.js中带有express的代码
app.get('/ranking', function (req, res) {
//get the first ten people in the ranking
var firstTen = getRanking(10, function(results){
//compute the array of results
var result = {
ranking: [],
}
for(var i = 0; i < results.length; i++){
result.ranking[i] = results[i];
}
//render the ranking with all the info
console.log(result);
res.render(__dirname + '/pages/ranking/ranking.jade', {
ranking: result,
});
});
});
我在结果数组中创建了一个对象,将在查询中找到的结果放入其中,并将其传递给呈现引擎。该console.log(results)
调用可以result
正确打印对象,例如:
{ ranking:
[ { Username: 'usr1',
_id: 4ed27319c1d767f70e000002,
Points: 100 },
{ Username: 'usr2',
_id: 4ed27326c1d767f70e000003,
Points: 100 } ]
}
我真的不知道如何处理传递给Jade页面的变量。无论我做什么,都会不断收到“意外标识符”错误。你们当中有人知道我该如何解决吗?
谢谢
查看上面的评论并进行更多调查,以下是我发现的工作:
在您的javascript(/控制器)上使用它:
...
res.render(__dirname + '/pages/ranking/ranking.jade', {
ranking: JSON.stringify(ranking),
})
...
在玉模板上:
...
function fillRanking(){
var rankArray = !{ranking};
alert("inside fillranking");
...
之所以有效,是因为!{}不会执行转义。
问题内容: 我的node.js项目有一个Jade模板。我想将一个对象发送到jade模板,并将其传递给页面内的一个函数(以呈现某些内容)。 我确定我是从服务器这样发送正确的东西 在客户端中,我这样做: 因此,在脚本函数内部,我想调用一个函数,该函数使用在服务器端创建的json创建可视化。 问题是渲染时我有类似的东西。我还尝试发送JSON的字符串化版本,但是当我这样做时会抱怨。 我发送的json始终是
问题内容: 当前,我的应用程序具有一个控制器,该控制器接收一个JSON文件,然后使用“ ng- repeat”对其进行迭代。这一切都很好,但是我还有一条指令需要遍历同一JSON文件。这造成了一个问题,因为我无法在一页上两次请求相同的JSON文件(我也不想这样做,因为它效率不高)。如果更改一个JSON文件之一的文件名,指令和控制器都可以请求并遍历JSON数据。 我想知道的是:将由控制器的JSON请求
我创建了一个Author对象,用于构造函数的方法签名:public Book但是,我所做的赋值要求将Author(实例变量)更改为。当然,现在我以前的构造函数不行了。这是密码 如果我上传的方式不令人满意,我对任何不便表示歉意。我还没有学会使用堆栈溢出。 谢谢!
问题内容: 在大多数语言(如c ++)中,传递数组会导致通过引用隐式传递它,因此对函数中传递的数组进行的任何更改都将导致更改原始数组。我正在学习Golang,在Alan AA Donovan和Brian W. Kernighan撰写的《 Go编程语言》一书中,它的行为不同于其他语言-不会隐式地通过引用传递数组。 这让我有些困惑-这是否意味着在没有引用的情况下传递数组不应该修改数组本身?让我说明一下
问题内容: 我很难将Flask / Python变量传递给Javascript。 基本上,我是从MySQL导入的,并尝试以三种不同的方式呈现返回值。 那是我的dict项目上运行以下命令时的输出。 此方法不好,但是我添加了详细信息,根本不是正确的格式。 我直接将python dict传递给看起来像这样的模板 然后在模板方面,我尝试了以下JavaScript行 没有一个可以一起工作或单独工作。 我也尝
问题内容: 我有以下内容,但它不起作用,我在stackoverflow上的某个地方读到了它的工作原理,但我似乎无法使其工作..它出错了……我在做错什么吗? 如果我确实传递了这样的数据-它可以工作-所以我知道我的服务正在工作 问题答案: 我相信代码将在对象上调用.value或.toString(),然后通过网络传递。您想传递JSON。 因此,包括JSON JavaScript库 http://www