【前言】:在完成Aura Components Basics时,遇到下面问题:The campingList component isn't iterating the array of 'items' and creating 'campingListItem' components. 经反复尝试,最终通过了这个挑战。

【代码】:
1. campingApp.app

<aura:application extends="force:slds"><!-- This component is the real "app" --><c:campingList/>
</aura:application>

2. campingList.cmp

<aura:component><aura:attribute name="item" type="Camping_Item__c"/><lightning:card title="{!v.item.Name}" iconName="standard:scan_card"><p class="slds-text-heading--medium slds-p-horizontal--small">Quantity: <lightning:formattedNumber value="{!v.item.Quantity__c}" style="decimal"/></p><p class="slds-p-horizontal--small">Price: <lightning:formattedNumber value="{!v.item.Price__c}" style="currency"/></p><p class="slds-p-horizontal--small">Packed: {!v.item.Packed__c}</p></lightning:card>
</aura:component>

3. campingListController.js

({clickCreateItem: function(component, event, helper) {var validCamping = component.find('campingform').reduce(function (validSoFar, inputCmp) {// Displays error messages for invalid fieldsinputCmp.showHelpMessageIfInvalid();return validSoFar && inputCmp.get('v.validity').valid;}, true);// If we pass error checking, do some real workif(validCamping){var newItem = component.get("v.newItem");var theItems = component.get("v.items");console.log("Campaign Item before 'create': " + JSON.stringify(theItems));theItems.push(newItem);component.set("v.items", theItems);console.log("Campaign Item after 'create': " + JSON.stringify(theItems));// reset formcomponent.set("v.newItem",{'sobjectType':'Camping_Item__c','Name': '','Quantity__c': 0,'Price__c': 0,'Packed__c': false});}}
})

4. campingHeader.cmp

<aura:component><lightning:layout class="slds-page-header slds-page-header--object-home"><lightning:layoutItem><lightning:icon iconName="action:goal" alternativeText="My Campaign Items"/></lightning:layoutItem><lightning:layoutItem padding="horizontal-small"><div class="page-section page-header"><h1 class="slds-text-heading--label">Campaign Items</h1><h2 class="slds-text-heading--medium">My Campaign Items</h2></div></lightning:layoutItem></lightning:layout>
</aura:component>

5. campingListItem.cmp

<aura:component><aura:attribute name="newItem" type="Camping_Item__c"default="{ 'sobjectType': 'Camping_Item__c','Name': '','Quantity__c': 0,'Price__c': 0,'Packed__c': false }"/><aura:attribute name="items" type="Camping_Item__c[]"/><!-- PAGE HEADER --><c:campingHeader/><!-- / PAGE HEADER --><!-- NEW EXPENSE FORM --><lightning:layout><lightning:layoutItem padding="around-small" size="6"><!-- CREATE NEW EXPENSE --><div aria-labelledby="newexpenseform"><!-- BOXED AREA --><fieldset class="slds-box slds-theme--default slds-container--small"><legend id="newexpenseform" class="slds-text-heading--small slds-p-vertical--medium">Add Campaign Item</legend><!-- CREATE NEW EXPENSE FORM --><form class="slds-form--stacked">          <lightning:input aura:id="campingform" label="Name"name="campitemname"value="{!v.newItem.Name}"required="true"/> <lightning:input type="number" aura:id="campingform" label="Quantity" name="campitemquantity"value="{!v.newItem.Quantity__c}"min="1"messageWhenRangeUnderflow="Enter an quantity that's at least 1."/><lightning:input type="number" aura:id="campingform" label="Price"name="campitemprice"min="1"formatter="currency"step="1"value="{!v.newItem.Price__c}"messageWhenRangeUnderflow="Enter an price that's at least $1."/><lightning:input type="checkbox" aura:id="campingform" label="Packed?"name="expreimbursed"checked="{!v.newItem.Packed__c}"/><lightning:button label="Create Campaign Item" class="slds-m-top--medium"variant="brand"onclick="{!c.clickCreateItem}"/></form><!-- / CREATE NEW EXPENSE FORM --></fieldset><!-- / BOXED AREA --></div><!-- / CREATE NEW EXPENSE --></lightning:layoutItem></lightning:layout><!-- / NEW EXPENSE FORM --><!-- ITERATIING ITEM LISTS --><div class="slds-card slds-p-top--medium"><c:campingHeader/><section class="slds-card__body"><div id="list" class="row"><aura:iteration items="{!v.items}" var="item"><c:campingListItem item="{!item}"/></aura:iteration></div></section></div><!-- / ITERATIING ITEM LISTS -->
</aura:component>

【效果预览】:
1. 验证规则:

2. Item List预览:

【注意事项】:
1. Demo环境不能含命名空间;
2. campingListController.js里面设置items和重置表单不能放在campingListHelper.js里面,否则验证无法通过;

Aura Components Basics on Trailhead —— Input Data Using Forms相关推荐

  1. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for i

    keras  imshow显示图片显示不出来,报错 Clipping input data to the valid range for imshow with RGB data ([0..1] fo ...

  2. python Clipping input data to the valid range for imshow with RGB data解决方法

    文章目录 遇到的问题 全部代码 参考 遇到的问题 第一点,遇到的问题是 Clipping input data to the valid range for imshow with RGB data ...

  3. 使用MetaMask实现转账交易时附带Input Data数据

    进入如下页面,点击View Assert in Explorer进入Etherscan网站,就可以看到本账户先前所有的交易信息. 字段分析 Txn Hash 是交易的Hash Method:交易的类型 ...

  4. 《How to Reshape Input Data for Long Short-Term Memory Networks in Keras》学习笔记

    跟随大神Jason Brownlee, Ph.D学习Deep Learning.<How to Reshape Input Data for Long Short-Term Memory Net ...

  5. Failed to set attribute: Invalid input data or parameter 解决

    arm64 swconfig 配置vlan 失败问题 Failed to set attribute: Invalid input data or parameter 解决 内核版本:linux-5. ...

  6. ABAP WB01 BDC ”No batch input data for screen “ ”没有屏幕 的批输入数据“

    ABAP WB01 BDC "No batch input data for screen & &" "没有屏幕 & & 的批输入数据&q ...

  7. sqoop导出hive分区表字段到mysql报错:Can‘t parse input data: ‘0‘

    目的: 为了保留ads(应用层)的历史数据,所以把ads层的表建成了带分区的表. 带来的问题: sqoop导出不带分区字段的列,可以正常导出: sqoop导出带分区字段的列,就报错如下: Can't ...

  8. 解决:Clipping input data to the valid range for imshow with RGB data

    Clipping input data to the valid range for imshow with RGB data 今天在提取彩色图像RGB通道值合成单通道图像时,出现问题: Clippi ...

  9. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255]解决方法

    Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] ❓报错原因 ...

最新文章

  1. 爬虫之 lxml模块的安装与使用示例
  2. PreparedStatement动态参数的引入
  3. php ci 参数,CI如何写一个控制器,并传递参数正常解析访问?
  4. xp系统连接服务器工具,xp系统远程连接服务器
  5. 模式——工程化实现及扩展(设计模式Java 版)
  6. 剖析Caffe源码之Net类变量
  7. 十分钟带你学会Http协议和Tomcat服务器的原理
  8. linux buffer cache 过高_怎么理解内存中的Buffer和Cache?
  9. python使用软件,输出,声明和if规则
  10. 物联网四大产业群的典型应用场景
  11. SQL:postgis中计算距离和面积
  12. WEB——点击下载excel表
  13. 修改了DNS服务器网速慢,网络速度缓慢怎么办?轻松一键修改DNS设置让网速提升五倍...
  14. Redis源码解读(二十一)——命令传播
  15. Word 分节符插入与删除方法
  16. 图应用:骑士周游问题
  17. 忘记手机密码怎么用计算机解开,手机忘记密码怎么办?教你三种方法帮你搞定!...
  18. 电脑只有飞行模式 不显示任何WiFi信号
  19. H5 集成微信自定义分享(兼容 ios android)
  20. Python混合图片操作

热门文章

  1. Windows计划任务 上次运行结果0x2
  2. 乖离率背离公式_股票bias指标使用技巧-股票bias指标的使用五大技巧 股票bias指标计算公式...
  3. springMVC+WebUploader实现多图片上传
  4. 一文看懂POE供电原理
  5. java编一个求圆柱表面积_Java:输入圆柱体的半径和高,计算并输出圆柱体的体积和表面积...
  6. 【新手向】emacs配置文件
  7. 推荐10个在线logo设计网站
  8. 改善脑力的70条方法[翻译]
  9. [J2EE][shiro][授权和认证框架]
  10. Oracle数据库学习笔记——数据完整性(下)