select_tag未定义

时间:2013-12-03 05:59:47

标签: node.js ejs

使用Express和EJS运行node.js进行渲染是我的代码:

<%
var choices = [ {value: '', text: ' ' }, 
            {value: 'HELD', text: 'HELD'},
            {value: 'CLEAR', text: 'CLEAR'}  ];
var selected = 0;
for (var i=0; i<choices.length; i++){
if (manifest.z_customs_status.trim() == choices[i].value){
    selected = i;
    break;
}
}
select_tag('z_customs_status', selected,  choices)
%>

当代码运行时,我得到了

select_tag is not defined

作为EJS中的错误。 select_tag在此处记录

https://code.google.com/p/embeddedjavascript/wiki/ViewHelpers

EJS对于使用Express进行节点开发仍然可行吗?

1 个答案:

答案 0 :(得分:1)

看起来这些甚至没有在source中定义,这让我想知道为什么它在他们的维基页面上。我确实从another answer发现有一个名为express-helpers的包,配置后允许访问所有视图助手。

npm install express-helpers

在你的app.js中,配置它:

require('express-helpers')(app);

最后,您的观点会略有不同:

<% 
    var choices = [ 
        {value: 1,text: 'First Choice'}, 
        {value: 2,text: 'Second Choice'},
        {value: 3,text: 'Third Choice'}  
    ]
%>
<%- select_tag('mySelectElement', choices, { value: 2 }) %>

The select_tag具有以下参数:

name
choices
html_options
  id      
  name
  value (selected value)