初步了解了Lightning的组件开发流程后,我们来认识下lightning的表单

点击对象管理器,选择对象:电影(Movie__c),创建字段

标签       API         数据类型        
 票价  Number__c  数字(16,2)
 是否上映  Flag__c  复选框

关于对象电影的相关内容及相关组件请参考之前的博客内容:http://www.cnblogs.com/luqinghua/p/8979893.html

1.创建组件:MyTest_CreateMovie

  1. <aura:component Controller="MyTestMovieController">
  2. <aura:attribute name="movieList" type="Movie__c[]"/>
  3. <aura:attribute name="movie" type="Movie__c"
  4. default="{'sobjectType':'Movie__c',
  5. 'Name':'',
  6. 'Director__c':'',
  7. 'ToStar__c':'',
  8. 'ShowTime__c':'',
  9. 'Number__c':0,
  10. 'Flag__c':false}"/>
  11. <!-- 表头 -->
  12. <lightning:layout class="slds-page-header slds-page-header--object-home">
  13. <lightning:layoutItem >
  14. <lightning:icon iconName="standard:scan_card" alternativeText="新电影"/>
  15. </lightning:layoutItem>
  16. <lightning:layoutItem padding="horizontal-small">
  17. <div class="page-section page-header">
  18. <h1 class="slds-text-heading--label">电影</h1>
  19. <h1 class="slds-text-heading--medium">新电影</h1>
  20. </div>
  21. </lightning:layoutItem>
  22. </lightning:layout>
  23. <!-- 电影字段列表 -->
  24. <lightning:layout >
  25. <lightning:layoutItem padding="around-small" size="6">
  26. <div aria-labelledby="newMovieForm">
  27. <fieldset class="slds-box slds-theme--default slds-container--small">
  28. <legend id="newMovieForm" class="slds-text-heading--small slds-p-vertical--medium">
  29. 新建电影
  30. </legend>
  31. <form class="slds-form--stacked">
  32. <lightning:input aura:id="MovieForm" label="名称"
  33. name="movieName"
  34. value="{!v.movie.Name}"
  35. required="true"/>
  36. <lightning:input aura:id="MovieForm" label="导演"
  37. name="movieDirector"
  38. value="{!v.movie.Director__c}"
  39. placeholder="请输入导演名称"/>
  40. <lightning:input aura:id="MovieForm" label="主演"
  41. name="movieToStar"
  42. value="{!v.movie.ToStar__c}"
  43. placeholder="请输入主演名称"/>
  44. <lightning:input type="number" aura:id="MovieForm" label="票价"
  45. name="movieNumber"
  46. formatter="currency"
  47. min="1"
  48. step="0.5"
  49. value="{!v.movie.Number__c}"
  50. messageWhenRangeUnderflow="票价最低1元"/>
  51. <lightning:input type="date" aura:id="MovieForm" label="上映时间"
  52. name="movieShowTime"
  53. value="{!v.movie.ShowTime__c}"/>
  54. <lightning:input type="checkbox" aura:id="MovieForm" label="是否上映"
  55. name="movieFlag"
  56. checked="{!v.movie.Flag__c}"/>
  57. <lightning:button label="加入电影列表"
  58. class="slds-m-top--medium"
  59. variant="brand"
  60. onclick="{!c.AddToList}"/>
  61. </form>
  62. </fieldset>
  63. </div>
  64. </lightning:layoutItem>
  65. </lightning:layout>
  66. </aura:component>

将该组件放在 My_Test.app中并预览

可以看到如上图所示的一个表单,包含了常用的复选框,日期,数字,文本等类型,然后是完成后面的创建方法

2.补充MyTest_CreateMovieController.js

  1. ({
  2. AddToList : function(component, event, helper) {
  3. //系统提供的校验错误信息的标准方法可校验必填项以及最小值等等
  4. var validExpense = component.find('MovieForm').reduce(function (validSoFar, inputCmp) {
  5. // 显示填写错误的字段消息
  6. inputCmp.showHelpMessageIfInvalid();
  7. return validSoFar && inputCmp.get('v.validity').valid;
  8. }, true);
  9. // 通过字段校验后继续创建的逻辑
  10. if(validExpense){
  11. // 创建一条记录
  12. var movie = component.get("v.movie");
  13. console.log("传入的电影信息: " + JSON.stringify(movie));
  14. helper.createMovie(component, movie);
  15. //将表单重置
  16. component.set("v.movie",{'sobjectType':'Movie__c',
  17. 'Name':'',
  18. 'Director__c':'',
  19. 'ToStar__c':'',
  20. 'ShowTime__c':'',
  21. 'Number__c':0,
  22. 'Flag__c':false});
  23. }
  24. }
  25. })

在MyTest_CreateMovieController.js中完成对表单数据的基本校验,比如表单的必填项,以及设置的票价不小于1元等等

3.补充MyTest_CreateMovieHelper.js

  1. ({
  2. createMovie : function(component, movie) {
  3. //调用Apex类中的方法
  4. var action = component.get("c.saveMovie");
  5. //传递参数
  6. action.setParams({
  7. "movie": movie
  8. });
  9. //方法调用
  10. action.setCallback(this, function(response){
  11. //方法调用状态
  12. var state = response.getState();
  13. if (state === "SUCCESS") {
  14. var movieList = component.get("v.movieList");
  15. movieList.push(response.getReturnValue());
  16. component.set("v.movieList", movie);
  17. }
  18. });
  19. var movie = component.get("v.movie");
  20. $A.enqueueAction(action);
  21. }
  22. })

MyTest_CreateMovieHelper.js中主要是与后台APEX控制类中的方法进行交互,将数据存入数据库中保存起来

4.更新MyTestMovieController类,在其中加入saveMovie方法

  1. /*********
  2. * Author:ricardo
  3. * Time:2018-03-21
  4. * Function:MyTest_Movie 后台控制类
  5. * Test:
  6. */
  7. public class MyTestMovieController{
  8. //初始化
  9. @AuraEnabled
  10. public static List<Movie__c> GetAll(){
  11. List<Movie__c> movieList = new List<Movie__c>();
  12. movieList = [select ShowTime__c,ToStar__c,Theme__c,Director__c,Name from Movie__c limit 50];
  13. return movieList;
  14. }
  15. //创建记录
  16. @AuraEnabled
  17. public static Movie__c saveMovie(Movie__c movie) {
  18. // Perform isUpdatable() checking first, then
  19. upsert movie;
  20. return movie;
  21. }
  22. }

综上所示,一个简单的创建电影条目的表单就完成了,打开组件MyTest_Movie就能看到我们新创建的电影记录位列其中,如有遗漏欢迎指正,有问题可在评论区留言

Salesforce Lightning开发学习(三)Component表单初解的更多相关文章

  1. Salesforce Lightning开发学习(一)Hello World开发实践

    一:什么是Lightning Component framework Lightning Component framework 简称Lightning,是Salesforce封装的一个前端框架,开发 ...

  2. Salesforce Lightning开发学习(四)重写新建/更新按钮

    重写新建/更新按钮的原因是因为项目需要用户在新建数据时从接口对数据进行校验,保证数据的有效性,同时获取接口返回的部分数据完成信息填充,而Sales force的trigger仅支持@future方法异 ...

  3. Flask学习 三 web表单

    web表单 pip install flask-wtf 实现csrf保护 app.config['SECRET_KEY']='hard to guess string' # 可以用来存储框架,扩展,程 ...

  4. Web jsp开发学习——Servlet提交表单时用法

     实现提交表单以后判断输入的信息是否符合条件    若符合条件   先新建servlet  Sevlet的两种声明方式,二选一即可  再到web.xml里注册   register.jsp就是表单的界 ...

  5. Salesforce Lightning开发学习(二)Component组件开发实践

    lightning的组件区分标准组件.自定义组件和AppExchange组件.标准组件由SF提供,自定义组件由developer自行开发,AppExchange组件由合作伙伴建立.下面我们写一个简单的 ...

  6. vue 学习三 v-model 表单绑定输入 以及修饰符的用处

    v-model 指定使用过vue的同学都应该是很熟悉的了,这里就不多介绍,本章主要就是记录一些v-model非常实用的修饰符和对于v-model在html文本框,多行文本框,选择框,单选框,复选框上对 ...

  7. Java开发学习(三十六)----SpringBoot三种配置文件解析

    一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...

  8. Bootstrap学习笔记(二) 表单

    在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文 ...

  9. SpringMVC学习系列 之 表单标签

    http://www.cnblogs.com/liukemng/p/3754211.html 本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图 ...

随机推荐

  1. 我自己收藏的 Windows 上好用的软件

    已经在使用的工具就不会列出来了. 1. 截图 - Snipaste 截图在我们的生活中,可以算的上是非常频繁的操作了,但是很多人是不是都在使用腾讯聊天软件的聊天截图功能,或许是没有一款称心的.安全的截 ...

  2. 科xue上网工具

    原来这样严格了吗 收藏一个工具列表: http://next.36kr.com/posts/collections/75

  3. WPF 精修篇 Winform 嵌入WPF控件

    原文:WPF 精修篇 Winform 嵌入WPF控件 首先 创建WPF控件库 这样就有了一个WPF界面 在wpf中增加界面等 在winform中增加WPFDLL 重新生成解决方案 在左侧工具栏 出现W ...

  4. ASP.NET Core Caching简介

    在.NET Core中提供了Caching的组件.目前Caching组件提供了三种存储方式: Memory Redis SQLSever 1.Memeor Caching 新建一个ASP.NET Co ...

  5. WPF样式与触发器(3)

    WPF中的各类控件元素, 都可以自由的设置其样式. 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Mar ...

  6. 开发技术--Numpy模块

    开发|Numpy模块 Numpy模块是数据分析基础包,所以还是很重要的,耐心去体会Numpy这个工具可以做什么,我将从源码与 地产呢个实现方式说起,祝大家阅读愉快! Numpy模块提供了两个重要对象: ...

  7. C# 中using 用来释放资源的用法

    using(...) {........} 定义了一个范围,等范围结束以后进行资源的释放. 例如: using(SqlConnection conn = new SqlConnection(" ...

  8. Kubernetes概念之deployment

    一整天一整天的坐在办公室,真的很~~~,懵圈中....,求解救. 本文通过<Kubernetes权威指南>的概念部分学习总结 Deployment作用 Deployment与RC的作用其实 ...

  9. 【Spring AOP】Spring AOP之如何通过注解的方式实现各种通知类型的AOP操作进阶篇(3)

    一.切入点表达式的各种类型 切入点表达式的作用:限制连接点的匹配(满足时对应的aspect方法会被执行) 1)execution:用于匹配方法执行连接点.Spring AOP用户可能最经常使用exec ...

  10. rocketmq 使用中碰到的一些问题

    1.rocket 入门使用 http://rocketmq.apache.org/docs/quick-start/ 2.内存不够 默认配置内存配置比较高,在测试环境启动会有问题因此需要调整默认的内存 ...