Salesforce学习之路(十一)Aura组件属性<aura:attribute />

1. <aura:attribute />语法

Aura组件属性类似与Apex中类的成员变量(或者说Java中类的成员变量)。他们是组件在特定的实例上设置的类型化字段,可以使用表达式语法从组件的标记内引用他们。

语法:<aura:attribute name="**" type="**" default="**" required="true/false" access="**" description="**">

  • name:必要字段,属性的名称
  • type:必要字段,属性的类型,支持的类型见下面的“属性type支持的类型”
  • default:非必要字段,默认值类型与type一致。
  • required:非必要字段,标记该属性是否为必须字段。true:表该字段为必要字段;false:表该字段为非必要字段。
  • access: 非必要字段,表该属性是否可被所属命名空间之外使用。public(默认):所有命名空间皆可用;global:应用内可使用;private: 组件内可使用。
  • description: 非必要字段,对该属性进行简单的描述。

示例:

<aura:component>
    <aura:attribute name="whom" type="String" default="world"/>
    Hello {!v.whom}!
</aura:component>

2. 属性命名规则:

  • 必须以字母或者下划线开头
  • 必须仅包含字母,数字,下划线字符

示例:

<!--正确-->
<aura:attribute name="test" type="String" />
<aura:attribute name="_test" type="String" />
<aura:attribute name="__123" type="String" />

<!--错误-->
<!--数字开头-->
<aura:attribute name="1test" type="String" />
<!--含有特殊字符-->
<aura:attribute name="test#" type="String" />

3. 属性type支持的类型

<aura:attribute />支持的类型有以下几种:基础类型,函数类型,对象类型,标准和自定义对象类型,集合类型,Apex Class类型,指定框架类型。

  • 基础类型
类型 示例 描述
Boolean <aura:attribute name="showDetail" type="Boolean" /> 值为true/false
Date <aura:attribute name="startDate" type="Date" /> 日期类型,格式为:yyyy-mm-dd。hh:mm:ss没有保存。
DateTime <aura:attribute name="lastModifiedDate" type="DateTime" />
日期类型,对应时间戳格式。

保存了除了日期,还保存了时间,并且精确到毫秒。

Decimal <aura:attribute name="totalPrice" type="Decimal" />
十进制,可以包括小数部分。对应Java.math.BigDecimal,精度高于Double类型。

针对货币字段,一般选择该类型。

Double <aura:attribute name="widthInchesFractional" type="Double" /> Double类型,可以包含小数位。对应Java.lang.Double。
Integer <aura:attribute name="numRecords" type="Integer" /> 整数类型,不包含小数位。对应Java.lang.Integer。
Long <aura:attribute name="numSwissBankAccount" type="Long" /> 长整型,不包含小数位。对应Java.lang.Long。
String <aura:attribute name="message" type="String" /> 字符串类型。

示例:

<aura:attribute name="favoriteColors" type="String[]" default="[‘red‘,‘green‘,‘blue‘]" />
  • 函数类型

属性的类型可以对象Javascript中的某个函数。如果子组件具有该类型的属性,可传递回调函数给父组件。

示例:

<aura:attribute name="callback" type="Function" />

注意:该类型不适用于服务端,仅在客户端使用。

  • 对象类型

该类型的属性对应一个对象。

示例:

<aura:attribute name="data" type="Object" />

注意:一般情况下,不建议使用该类型。object类型的属性在传递至服务端时,会将所有的东西序列化为字符串,此时如果使用深度表达(例如:v.data.property),则会抛出字符串没有该属性异常。因此,尽量使用type="Map",防止出现反序列化等问题。

  • 标准或自定义对象类型

属性支持标准或自定义对象的类型。

示例:

<!--标准对象-->
<aura:attribute name="account" type="Account" />
<!--自定义对象-->
<aura:attribute name="employee" type="Employee__c" />

注意:用户至少对该对象具有读取权限,否则组件虽然不会报错,但是页面不会加载。

  • 集合类型

下面为支持的集合类型:

类型 示例 描述
type[](Array) <aura:attribute name="colorPalette" type="String[]" default="[‘red‘, ‘green‘, ‘blue‘]" /> 自定义数组
List <aura:attribute name="colorPalette" type="List" default="[‘red‘, ‘green‘, ‘blue‘]" /> 有序的列表
Map <aura:attribute name="sectionLabels" type="Map" default="{ a: ‘label1‘, b: ‘label2‘ }" />
key:value集合。key不可重复。

如果不设置默认值,则在Javascript中默认设为null。

如果想设置空值,可写为:default="{}"

Set <aura:attribute name="collection" type="Set" default="[‘red‘, ‘green‘, ‘blue‘]" /> 集合,无序,不含重复元素。

示例:

<!--这里使用type[]类型-->
<aura:attribute name="displayMonth" type="String[]" default="[‘6‘, ‘12‘]" />
  • Apex Class类型

该类型属性对应一个Apex类。

示例:

存在某个自定义Apex类:DemoAuraController.cls

<!--存在名为:DemoAuraController.cls的Apex类-->
<aura:attribute name="data" type="DemoAuraController" />

注意:type类型大小写不敏感,例如这里可以写成demoauracontroller。

  • 指定框架类型

下面为支持的指定框架类型:

类型 示例 描述
Aura:component N/A
一个单独的组件。

相比较而言,官方推荐使用Aura:component[]类型。

Aura:component[]

<aura:component>
    <aura:attribute name="detail" type="Aura.Component[]">
    <p>default paragraph1</p>
    </aura:attribute>
    Default value is: {!v.detail}
</aura:component>

利用该类型可以设置一个类型块。 
 Aura.Action <aura:attribute name =“ onclick” type =“ Aura.Action” />   使用此类型,可以将action传递给组件。

4. 实例分析

sample.cmp

<aura:component controller="TestAuraController"
                implements="force:appHostable,flexipage:availableForAllPageTypes"
                access="global">

    <aura:attribute name="whom" type="String" default="world" />

    <!--组件初始化操作-->
    <aura:handler name="init" value="{!this}" action="{!c.handleInit}" />
    <div>
    <!--按钮组件,label为界面显示值;onclick: 点击按钮时触发controller.js中applyHandle函数-->
    <!--display: true表示按钮灰掉,无法操作;false表示正常工作-->
        <lightning:button label="Apply" onclick="{!c.applyHandle}" disabled="false" />
    </div>
</aura:component>

sampleController.js

({
    handleInit: function (cmp, event, helper) {
        // 初始化组件时,将whom默认值打印值控制台
        console.log("init whom: " + cmp.get(‘v.whom‘));
    },

    applyHandle: function (cmp, event, helper) {
        // 点击Apply按钮时,更新whom值,并打印到控制台
        cmp.set(‘v.whom‘, ‘updated‘);
        console.log("apply whom: " + cmp.get(‘v.whom‘));
    }
})

结果分析:

#初始化:
init whom: world
#点击apply按钮:
apply whom: updated


作者:吴家二少

博客地址:https://www.cnblogs.com/cloudman-open/

本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接

原文地址:https://www.cnblogs.com/cloudman-open/p/11897394.html

时间: 2024-10-31 19:49:51

Salesforce学习之路(十一)Aura组件属性<aura:attribute />的相关文章

Android学习之路——Android四大组件之activity(一)

一.什么是Activity? Activity简单的说就是一个界面,我们在Android手机上看到的每一个界面就是一个activity. 二.Activity的创建 1.定义一个类继承activity,然后在清单文件manifest.xml文件的application节点下注册activity,这个activity就创建成功了. public class MyActivity extends Activity { } 2.清单文件注册activity <application android:a

Android学习之路——Android四大组件之activity(二)

上一篇讲了activity的创建和启动,这一篇,我们来讲讲activity的数据传递 activity之间的数据传递,这里主要介绍的是activity之间简单数据的传递,直接用bundle传递基本数据类型的数据.还有一种数据类型是parcelable和serialable 用bundle 传递数据有两种情况,这篇文章就分别从两个方面说明一下. 一.利用bundle传递基本数据类型 1.启动时传递数据,使用intent的put方法,将数据写入bundle中,然后startActivity(inte

Qt 学习之路:QML 组件

前面我们简单介绍了几种 QML 的基本元素.QML 可以由这些基本元素组合成一个复杂的元素,方便以后我们的重用.这种组合元素就被称为组件.组件就是一种可重用的元素.QML 提供了很多方法来创建组件.不过,本章我们只介绍一种方式:基于文件的组件.基于文件的组件将 QML 元素放置在一个单独的文件中,然后给这个文件一个名字.以后我们就可以通过这个名字来使用这个组件.例如,如果有一个文件名为 Button.qml,那么,我们就可以在 QML 中使用Button { … }这种形式. 下面我们通过一个例

Salesforce学习之路-developer篇(一)利用VS Code结合Git开发Salesforce

Part 1: 从Git中克隆代码到本地 git clone https://github.com/git/git Part 2: 在VS Code中安装Salesforce和Git插件 在VS Code中打开代码工程 安装Salesforce Extension Pack 安装Git Extension pack Part 3: 认证一个Org 打开代码工程 打开Command palette(shift+command+p/F1) SFDX: Authorize an Org 选择要登录的模

Salesforce学习之路-developer篇(三)利用Visualforce Page实现页面的动态刷新案例学习

Visualforce是一个Web开发框架,允许开发人员构建可以在Lightning平台上本地托管的自定义用户界面.其框架包含:前端的界面设计,使用的类似于HTML的标记语言:以及后端的控制器,使用类似于Java的Apex语言. 哪些版本支持Visualforce? 众所周知,Salesforce分为多个版本,不同的版本功能之间存在一定的差异,而支持Visualforce的版本:Contact Manager,Group,Professional,Enterprise,Unlimited,Per

Qt学习之路2---窗口组件及窗口类型

窗口组件: 图形用户界面由不同的窗口和窗口组件构成: Qt以组件对象的方式,构建图形用户界面. 组件的类型包括: ---容器类(父组件):用于包含其他的界面组件 ---功能类(子组件):用于实现特定的交互功能 Qt中没有用父组件的顶级组件叫做窗口. Qwidget 继承自QObject和QPaintDevice -Qwidget 能够绘制自己和处理用户的输入,也是Qt中所以窗口组件类的父类 -Qwidget类对象作为父组件或顶级组件使用 -Qt中的每一个窗口组件都是Qwidget -Qwidge

zigbee学习之路(十一):看门狗

一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU 可能受到一个软件颠覆的情况下,看门狗定时器(WDT)用作一个恢复的方法.当软件在选定时间间隔内不能清除WDT 时,WDT 必须就复位系统.看门狗可用于受到电气噪音.电源故障.静电放电等影响的应用,或需要高可靠性的环境.如果一个应用不需要看门狗功能,可以配置看门狗定时器为一个间隔定时器,这样可以用于

WPF学习之路(三) 属性与依赖

类型是DependencyProperty的属性是依赖属性 依赖属性不同于普通的.Net属性,类似于一个计算过程,根据依赖的值得到最终值. 为什么引入依赖属性: MSDN原文 One of the primary architectural philosophies used in building WPF was a preference for properties over methods or events. WPF的设计思想是侧重属性胜于方法和事件. 实例 依赖属性对资源引用的支持 设

Linux嵌入式驱动学习之路(十一)按键驱动

轮询方式: 和led驱动不同的是在配置IO引脚的时候,把LED的输出引脚换成输入,在read函数中向外发送io的状态.必须由应用程序不断的来查询当前IO口的状态来判断. 中断方式: sd