Sails.js – 控制器正在渲染视图,但集合是未定义的
尝试用新的控制器的帆,但视图无法正确呈现。 我的控制器看起来像这样:
/** * QuestionController * * @module :: Controller * @description :: Contains logic for handling requests. */ module.exports = { /* eg sayHello: function (req, res) { res.send('hello world!'); } */ index: function (req, res) { return res.view({ questions: [{title: 'Freddy a presidente?', content: 'Últimamente Freddy se encuentra con más diplomacia.'}] }); } };
虽然我的观点是这样的:
<h1>Preguntas</h1> <ul> <% _.each(questions, function(question) { %> <li><%= question.title %></li> <% }) %> </ul>
但是我收到以下错误:
ReferenceError: /home/alainus/dev/parlamenta/parlamenta/views/question/index.ejs:3 1| <h1>Preguntas</h1> 2| <ul> >> 3| <% _.each(questions, function(question) { %> 4| <li><%= question.title %></li> 5| <% }) %> 6| </ul> questions is not defined at eval (eval at <anonymous> (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs/lib/ejs.js:236:14), <anonymous>:29:68) at eval (eval at <anonymous> (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs/lib/ejs.js:236:14), <anonymous>:29:228) at /home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs/lib/ejs.js:249:15 at Object.exports.render (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs/lib/ejs.js:287:13) at Object.exports.renderFile (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs/lib/ejs.js:317:20) at View.module.exports [as engine] (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/ejs-locals/index.js:85:7) at View.render (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/express/lib/view.js:76:8) at Function.app.render (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/express/lib/application.js:506:10) at ServerResponse.res.render (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/node_modules/express/lib/response.js:756:7) at renderView (/home/alainus/dev/parlamenta/parlamenta/node_modules/sails/lib/hooks/views/index.js:298:20) at /home/alainus/dev/parlamenta/parlamenta/node_modules/sails/lib/hooks/views/index.js:280:20 at Object.oncomplete (fs.js:107:15)
任何想法如何使这项工作?
试着把问题放在报价上
return res.view({ "questions": [{title: 'Freddy a presidente?', content: 'Últimamente Freddy se encuentra con más diplomacia.'}] });
你在config \ routes.js中定义的路由如何?
我猜你的代码看起来像: '/':{view:'main',action:'index'} ,但是这只是在不调用控制器的情况下渲染视图。
尝试类似: '/':{controller:'main',action:'index'}
问候
哈里什雷迪似乎已经钉牢了。
SailsJs文档显示了不带引号的视图variables的示例:
return res.view({ corndogs: [{name: 'Hank the Corndog'}, {name: 'Lenny the Corndog'}] });
…但是这对我不起作用。 我不知道为什么。 如果我引用它的工作variables名称。
return res.view({ "corndogs": [{name: 'Hank the Corndog'}, {name: 'Lenny the Corndog'}] });