首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TowerJS创建登录表单

使用TowerJS创建登录表单
EN

Stack Overflow用户
提问于 2012-05-10 15:18:22
回答 2查看 323关注 0票数 0

我首先要说的是,我主要是一个前端设计师/开发人员,对MVC几乎没有经验。

我想使用TowerJS创建一个登录表单。我的大部分应用程序都是从文档中取出的;我有一个名为“User”的单一模型:

代码语言:javascript
复制
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()

对于“新”用户视图,我包括“表单”部分:

代码语言:javascript
复制
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")。如果我使用一个名为“登录”的新的部分:

代码语言:javascript
复制
formFor @user, (f) ->
  f.fieldset (fields) ->
    fields.field "email", as: "string"
    fields.field "password", as: "string"
  f.fieldset (fields) ->
    fields.submit "Submit"

然后表单就不会呈现,因为它似乎期待着表单中的所有User字段,因为它被传递给了@user。这确实是因为我对模型是如何呈现的缺乏高度的理解。在我看来,呈现此登录表单的两个选项是:

  1. 完全使用“表单”部分,并分别通过css/后端js隐藏/忽略不相关的字段,或者.
  2. 创建某种新模型,其中只包含我关心的登录字段(电子邮件、密码),然后在该模型上使用formFor。这对我来说很傻,因为我是在处理用户,所以我直觉地觉得我应该使用User模型.

也许答案在于创建一个Session模型,但我不确定这些部分是如何在TowerJS中协同工作的。要明确的是,问题是:适当的方法是如何使用TowerJS?来呈现登录表单的。

EN

回答 2

Stack Overflow用户

发布于 2012-11-08 14:36:01

试试这个:

代码语言:javascript
复制
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'

此外,根据文档中的样式指南,您应该尽可能使用单引号。

票数 1
EN

Stack Overflow用户

发布于 2012-05-10 17:41:22

  1. 在应用程序/视图/用户中创建一个名为_login.coffee的新文件,其中只包含您想要的字段。如下所示:

partial "login". @ formFor,(f) -> f.fieldset (字段) -> fields.field "email",as:"string“fields.field”密码“,as:"string”f.fieldset (字段) -> fields.submit“提交”

  • 编辑文件app/view/user/new.咖啡“,以便读到partial "form"的行现在读到了fields.field

现在,您的视图应该正确地呈现。当然,你现在把密码存储成明文等等,但这完全是另一回事.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10537160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档