EJS注入方法之前<%= render(快速查看助手)

时间:2012-03-09 02:14:49

标签: javascript node.js ejs

我开发了一个名为express helpers的模块,它使ruby成为类似rails的视图助手。我正在尝试制作一个类似于RoR的form_for方法,但是我对ejs的工作方式遇到了困难

这就是我希望视图工作的方式:

<% form_for("user", {multipart: true}, function(f){ %>
  <%= f.label_for("username") %>
  <%= f.text_field("username") %>
  <%= f.submit() %>
<% }) %>

现在我一直试图在内部标签周围注入表单标签,但这也不起作用。 我已经尝试将form_for方法放在&lt;%=标记中,但它无法处理 示例&lt;%= form_for(“user”,{multipart:true},function(f){%&gt;&lt;%})%&gt;

这是我目前的方法代码

helpers.form_for = function(form_obj_string, html_options, formcall){
    var form_obj = this[form_obj_string]

    var old = formcall.toString();
    var args = old.substring(old.indexOf("(") + 1, old.indexOf(")"));
    var scr = old.substring(old.indexOf("{") + 1, old.lastIndexOf("}") - 1);
    eval("t.formcall = function (" + args + "){" + scr + " }");

    var form_helpers = {
        formObj: form_obj,
        label_for: function(element_string, html_options){
            helpers.label_for(form_obj_string+"["+element_string+"]", html_options)
        },
        text_field: function(element_string, html_options){
            helpers.text_field_tag(form_obj_string+"["+element_string+"]", html_options["value"], html_options)
        },
        text_area: function(element_string, html_options){
            helpers.text_area_tag(form_obj_string+"["+element_string+"]", html_options["value"], html_options)
        },
        submit: helpers.submit_tag
    }

    return helpers.form_tag('/'+form_obj_string+'s',html_options) + formcall(form_helpers) + helpers.form_end_tag();
}

我帮助工作没有问题基本上我想做的就是以相对直观的方式在表单主体周围注入表单标签。

任何想法或诋毁?

0 个答案:

没有答案