javascript – 是否有规范的meteor.js表单包?

栏目: Node.js · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/18712225/is-there-a-canonical-meteor-js-forms-package

有没有一个表格包被认为是规范的,或者一个可能类似于最终会以核心的东西?

在我的搜索中,我想出了两个主要的竞争者,根据活动,烦恼和文档(但可能还有其他的):

> https://github.com/copleykj/Mesosphere

> https://github.com/aldeed/meteor-autoform

如果有人看过这两个,你可以评论为什么或在哪里可以使用一个对另一个?

因为这还没有得到回答,我会用一个“你为什么要自己做”的论点.

一个表单是DOM和验证的显示.我认为Meteor的 工具 都足够好,不需要他们之间的另一个抽象.

考虑什么流星给你:你可以为你的对象编写一个类,它本身就能理解所有的验证和规则.不是一般的,“必须是数字方式”,而是以一种复杂的方式存在(必须是素数?).你可以编写这个类,它可以在客户端和服务器上运行.您应该始终在客户端和服务器上验证.确认库出现,因为客户端和服务器是(至少)两种不同的语言. Node / Meteor是JS的无处不在.

为什么不使用这个奇妙的功能?不要将验证码放在多个地方.将您的数据提供给您的对象,让它接受或拒绝客户端(和服务器上).

例如,我通过我自己的模板和一个帮助函数的组合来创建每个文本元素:

表格

{{label_text fname='name' title='Agent Name' placeholder='Formal Name' collection='agent'  passthrough='autofocus=autofocus ' }}
{{label_text fname='agentInCharge' title='Agent In Charge' placeholder='Owner' collection='agent'   }}
{{label_text fname='phone' title='Phone Number(s)' placeholder='Include Area  Code'collection='agent'   }}
{{>gps }}

模板

<template name='label_text'>
    <div class="row">
        <label class="large-3" for="{{fname}}_{{_id}}">{{title}}</label>
        <div class="large-8">
            <input name="{{fname}}" 
                   id='{{fname}}_{{_id}}' 
                   class="{{fname}}" 
                   value="{{value}}"
                   data-original="{{value}}" 
                   placeholder="{{placeholder}}" 
                   type="{{type}}" {{passthrough}}  />
        </div>
    </div>
</template>

和几个助手:

generateField = (options) ->
  options.hash.value = options.hash.value or this[options.hash.fname]

  # allow for simple params as default
  options.hash.title = options.hash.title or options.hash.fname
  options.hash.template = options.hash.template or "label_text"
  options.hash.placeholder = options.hash.placeholder or options.hash.title
  options.hash.type = options.hash.type or 'text'

  new Handlebars.SafeString(Template[options.hash.template](options.hash))



Handlebars.registerHelper "label_text", (options) ->
  options.hash.collection = options.hash.collection or 'generic'  
  generateField.call this, options

Handlebars.registerHelper "label_text_area", (options) ->
  options.hash.collection = options.hash.collection or 'generic'
  options.hash.template = "label_text_area"
  options.hash.rows = options.hash.rows or 3
  options.hash.columns = options.hash.columns or 40
  generateField.call this, options

Handlebars.registerHelper "switch", (options) ->
  options.hash.template = "switch"
  options.hash.em = options.hash.em || 7
  generateField.call this, options

然后我发送数据到客户端对象看看它的想法.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/18712225/is-there-a-canonical-meteor-js-forms-package


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML5与CSS3基础教程(第8版)

HTML5与CSS3基础教程(第8版)

[美] Elizabeth Castro、[美] Bruce Hyslop / 望以文 / 人民邮电出版社 / 2014-5 / 69.00元

本书是风靡全球的HTML和CSS入门教程的最新版,至第6版累积销量已超过100万册,被翻译为十多种语言,长期雄踞亚马逊书店计算机图书排行榜榜首。 第8版秉承作者直观透彻、循序渐进、基础知识与案例实践紧密结合的讲授特色,采用独特的双栏图文并排方式,手把手指导读者从零开始轻松入门。相较第7版,全书2/3以上的内容进行了更新,全面反映了HTML5和CSS3的最新特色,细致阐述了响应式Web设计与移......一起来看看 《HTML5与CSS3基础教程(第8版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具