美文网首页
angular-schem-form 表单类型扩展

angular-schem-form 表单类型扩展

作者: 蜀城走马 | 来源:发表于2017-05-09 18:02 被阅读0次

开始配置

增加一个表单的扩展类型,需要最基本的一个template模板和一些builder functions,具体代码如下:

template:

<div class="form-group {{form.htmlClass}}" ng-class="{'has-error': hasError(),'has-success': hasSuccess()}">
    <label class="control-label {{form.labelHtmlClass}}" ng-show="showTitle()">{{form.title}}</label>
    <tags-input
            schema-validate="form"
            min-length="{{form.minLength}}"
            max-length="{{form.maxLength}}"
            min-tags="{{form.minTags}}"
            max-tags="{{form.maxTags}}"
            ng-model="$$value$$"
            name="{{form.key.slice(-1)[0]}}"
            placeholder="{{form.placeholder}}"
            class="{{form.fieldHtmlClass}}"></tags-input>
    <span class="help-block">{{ (hasError() && errorMessage(schemaError())) || form.description}}</span>
</div>

js:

angular.module('myAddOnModule',['schemaForm'])
  .config(function(schemaFormDecoratorsProvider, sfPathProvider, schemaFormProvider,) {
    var tagCloud = function (name, schema, options) {
        if (schema.type === 'array' && (schema.format === 'tagCloud')) {
            var f = schemaFormProvider.stdFormObj(name, schema, options);
            f.key = options.path;
            f.type = 'tagCloud';
            options.lookup[sfPathProvider.stringify(options.path)] = f;
            return f;
        }
    };
  
    schemaFormProvider.defaults.array.unshift(tagCloud);
  
    schemaFormDecoratorsProvider.addMapping(
        'bootstrapDecorator',
        'tagCloud',
        tagCloudTemplate
    );
  
    schemaFormDecoratorsProvider.createDirective(
        tagCloudTemplate
    );
});

以上是我在项目中使用的标签输入类型扩展,schema-validate="form"是必须的,它会对form组件上的model进行validate,如果没有写入该语句,最后生成的表单控件将不会具备表单验证。has-error、has-success、hasError()、hasSuccess()都是angular-schema-form中内置的表单验证成功的样式和调用方法,可以根据自己的需要进行使用。

ng-model是通过$$value$$进行绑定的,它直接绑定的是form配置的key的model。

自定义的可配置项都可以通过form.property进行定义,在使用schema form配置form文件时,可以在form中对property进行配置,形如:

var form = [
  {
     key: "name",
     minLength: 4
  }
]

如上面的代码示例,我在扩展类型中自定义了form的minLength属性,所以在使用时,可以通过在form中配置minLength进行使用。

<span class="help-block">{{ (hasError() && errorMessage(schemaError())) || form.description}}</span> 该段代码是用来对表单控件的描述和错误信息进行展示

相关文章

  • angular-schem-form 表单类型扩展

    开始配置 增加一个表单的扩展类型,需要最基本的一个template模板和一些builder functions,具...

  • Python day43_Flask入门

    使用 Flask-WTF 实现表单 导入wtf扩展的表单类,导入自定义表单需要的字段,导入wtf扩展提供的表单验证...

  • Html5 + Css 3 新增属性

    这篇文章的主要知识点常见的语义标签常用的表单类型常用的表单属性H5的DOM扩展 常见的语义标签 起始语义化标签就是...

  • h5表单

    html5 表单 新增input类型 新增表单元素 html5表单验证 新增表单属性 新增的input类型 inp...

  • HTML表单介绍

    HTML 表单用于搜集不同类型的用户输入, 元素定义 HTML 表单;HTML 表单包含不同类型的 input ...

  • 2019-04-09 表单(5)

    表单布局Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 1.垂直或基本表单 ...

  • 2017-07-14

    vue中,表单组件的数据双向绑定,不仅跟表单控件类型有关,还跟绑定的数据类型有关。 看来是表单控件类型去决定数据类...

  • HTML5 表单元素新特性

    1. 传统的表单类型: 传统的 input 表单的类型: text、 password 、submit 、rese...

  • 学习笔记四|事件处理

    事件类型 传统事件类型 表单事件 当提交表单和重置表单时, 元素会分别触发submit和reset事件。 当用户和...

  • 表单类型

网友评论

      本文标题:angular-schem-form 表单类型扩展

      本文链接:https://www.haomeiwen.com/subject/lrjitxtx.html