我首先要说的是,我主要是一个前端设计师/开发人员,对MVC几乎没有经验。
我想使用TowerJS创建一个登录表单。我的大部分应用程序都是从文档中取出的;我有一个名为“User”的单一模型:
class App.User extends Tower.Model
@field "email", type: "String"
@field "userName", type: "String"
@field "password", type: "String"
@field "active", type: "Boolean", default: -> true
@validates "userName", presence: true
@validates "email", presence: true, format: /\w+@\w+.com/
@validates "password", presence: true
@timestamps()对于“新”用户视图,我包括“表单”部分:
formFor @user, (f) ->
f.fieldset (fields) ->
fields.field "email", as: "string"
fields.field "userName", as: "string"
fields.field "password", as: "string"
fields.field "active", as: "string"
f.fieldset (fields) ->
fields.submit "Submit"如果我将“表单”部分用于我的登录表单,它将包括我不想要的字段(例如"active")。如果我使用一个名为“登录”的新的部分:
formFor @user, (f) ->
f.fieldset (fields) ->
fields.field "email", as: "string"
fields.field "password", as: "string"
f.fieldset (fields) ->
fields.submit "Submit"然后表单就不会呈现,因为它似乎期待着表单中的所有User字段,因为它被传递给了@user。这确实是因为我对模型是如何呈现的缺乏高度的理解。在我看来,呈现此登录表单的两个选项是:
formFor。这对我来说很傻,因为我是在处理用户,所以我直觉地觉得我应该使用User模型.也许答案在于创建一个Session模型,但我不确定这些部分是如何在TowerJS中协同工作的。要明确的是,问题是:适当的方法是如何使用TowerJS?来呈现登录表单的。
发布于 2012-11-08 14:36:01
试试这个:
formFor @user, (f) ->
f.fieldset (fields) ->
fields.field 'email', as: 'string'
fields.field 'userName', as: 'hidden'
fields.field 'password', as: 'string'
fields.field 'active', as: 'hidden'
f.fieldset (fields) ->
fields.submit 'Submit'此外,根据文档中的样式指南,您应该尽可能使用单引号。
发布于 2012-05-10 17:41:22
partial "login". @ formFor,(f) -> f.fieldset (字段) -> fields.field "email",as:"string“fields.field”密码“,as:"string”f.fieldset (字段) -> fields.submit“提交”
partial "form"的行现在读到了fields.field现在,您的视图应该正确地呈现。当然,你现在把密码存储成明文等等,但这完全是另一回事.
https://stackoverflow.com/questions/10537160
复制相似问题