Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 玉模板;每一个;函数返回空对象_Templates_Views_Node.js_Pug - Fatal编程技术网

Templates 玉模板;每一个;函数返回空对象

Templates 玉模板;每一个;函数返回空对象,templates,views,node.js,pug,Templates,Views,Node.js,Pug,我有一只虫子已经困扰了我好几天了。我对Node和Jade模板系统非常陌生,所以请耐心听我说:我希望通过以下方式添加样式表: App.js(Express): 在layout.jade(与app.jade一起执行)中,我有: 再加上更多。。。我一直遇到同样的错误: 9. ' - if(stylesheet.indexOf(\'http') >= 0)' Object function () { var o = {}, i, l = this.length, r = []; for(

我有一只虫子已经困扰了我好几天了。我对Node和Jade模板系统非常陌生,所以请耐心听我说:我希望通过以下方式添加样式表:

App.js(Express):

在layout.jade(与app.jade一起执行)中,我有:

再加上更多。。。我一直遇到同样的错误:

9. ' - if(stylesheet.indexOf(\'http') >= 0)'

Object function () {
  var o = {}, i, l = this.length, r = [];
  for(i=0; i
  for(i in o) r.push(o[i]);
  return r;
} has no method 'indexOf'
现在。。问题是,这个模板在另一个传递完全相同变量的应用程序中工作:我非常感谢你们对这个棘手问题的任何建议

谢谢!
马特·米勒

这是你的问题

在这方面:

res.render('app.jade', {locals : locals});
您正在传入locals==>locals,这是一个散列(好吧,我是PERL的家伙,我认为JS称它们为“关联数组”)

现在,在您的jade模板中,我们有一行:

 - var stylesheets = stylesheets || []; 
在JADE内部,您已经定义了变量“locals”,但其他所有内容都隐藏在该变量下,因此没有定义变量“stylesheets”(而是定义了locals.stylesheets)。因此,这行代码将变量“stylesheets”设置为“[]”

这就是我要推测的地方。“indexOf”是数组对象的一种方法。也许JADE中构造的数组没有此方法,而node.js中构造的数组有此方法。这可以解释为什么您在尝试调用“stylesheets.indexOf(…)”时会出现错误

res.render('app.jade', {locals : locals});
 - var stylesheets = stylesheets || [];