2012-01-16 100 views
1

表(部分):我如何獲得通過名稱的變量在一個mixin

include ../mixins/form-helpers 

form(action='/users/create', method='post') 

    div.fields 

    fieldset 

     mixin field('text', 'email', 'Email') 
     mixin field('password', 'password', 'Password') 
     mixin field('password', 'password_confirmation', 'Confirm password') 
     mixin field('username', 'username', 'Username') 

    mixin submit('Register') 

場的mixin看起來是這樣的:

mixin field(type, n, label) 
    .clearfix 
    label(for='#{n}') #{label} 
    .input 
     input#password.span8(name=n, type=type, value=user[name]) 

控制器:

(req, res)-> 

    user = 
    email: 'someemail' 
    password: '' 
    password_confirmation: '' 
    username: 'someusername' 

    res.render 'users/new', user:user 

我試圖使字段混合更通用一點,這樣我就可以重用它。我在尋找一種方式,以「通用[名]」

回答

1

您可以在玉模板內的變量用破折號來代替「用戶[名]」( - )

所以如果你使用通用[姓名]您可以在您的表單中執行以下操作:

-var generic = user; 

include ../mixins/form-helpers 

form(action='/users/create', method='post') 

    div.fields 

    fieldset 

     mixin field('text', 'email', 'Email') 
     mixin field('password', 'password', 'Password') 
     mixin field('password', 'password_confirmation', 'Confirm password') 
     mixin field('username', 'username', 'Username') 

    mixin submit('Register')