Salesforce学习之路(十)Org的命名空间
1. 命名空间的适用场景
每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件。否则,使用默认命名空间访问组件,系统默认的命名空间为“c”。
- 如果Org没有创建命名空间前缀,下述情况必须使用“c”命名空间前缀:
- 引用自定义创建的组件
- 引用自定义创建的事件
 
- 如果Org没有创建命名空间,下述情况下Org会自动使用隐式命名空间,即该场景下无需使用指定的命名空间前缀:
- 引用自定义对象
- 引用标准对象和自定义对象的字段
- 引用Apex的控制类
 
- 如果Org创建了命名空间前缀,下述情况下必须使用自定义的命名空间前缀:
- 引用自定义创建的组件
- 引用自定义创建的事件
- 引用自定义对象
- 引用标准对象和自定义对象的字段
- 引用Apex的控制类
- 引用静态资源
 
2 命名空间命名规则
命名规则必须满足以下条件:
- 以字母开头
- 包含1-15个字母数字字符
- 不包含两个下划线
例如: myNamespace123和my_namespace是有效的;123MyNamespce和my__namespace是无效的。
3 创建命名空间
Setup-->Packages(注意:该条目只在Salesforce Classic版本中才有)-->Developer Settings-->Edit

Check Avaliability校验名称是否满足规则。
4 命名空间使用示例
这里以Aura组件使用命名空间作为示范。
- Org没有设置命名空间前缀
| 引用项 | 示例 | 
| 标记中使用组件 | <c:myComponent> | 
| 系统属性中使用组件 | <aura:component extends="c:myComponent"> | 
| Apex控制类 | <aura:component controller="ExpenseController"> | 
| 属性的类型为自定义对象 | <aura:attribute name="expense" type="Expense__c" /> | 
| 属性的类型为自定义对象,并且设置默认值 | <aura:attribute name="newExpense" type="Expense__c" | 
| 表达式中含有自定义对象的字段 | <ui:inputNumber value="{!v.newExpense.Amount__c}" label=… /> | 
| javascript函数中含有自定义对象字段 | updateTotal: function(component) { | 
| 在Javascript函数中动态创建新的组件 | var myCmp = $A.createComponent("c:myComponent", {}, | 
| 在Javascript函数中的接口对比 | aCmp.isInstanceOf("c:myInterface") | 
| 注册事件 | <aura:registerEvent type="c:updateExpenseItem" name=… /> | 
| 事件处理 | <aura:handler event="c:updateExpenseItem" action=… /> | 
| 显式依赖 | <aura:dependency resource="markup://c:myComponent" /> | 
| Javascript函数中的应用事件 | var updateEvent = $A.get("e.c:updateExpenseItem"); | 
| 静态资源 | <ltng:require scripts="{!$Resource.resourceName}" styles="{!$Resource.resourceName}" /> | 
- Org设置了命名空间前缀
| 引用项 | 示例 | 
| 标记中使用组件 | <yournamespace:myComponent /> | 
| 系统属性中使用组件 | <aura:component extends="yournamespace:myComponent"> | 
| Apex控制类 | <aura:component controller="yournamespace.ExpenseController"> | 
| 属性的类型为自定义对象 | <aura:attribute name="expenses" type="yournamespace__Expense__c[]" /> | 
| 属性的类型为自定义对象,并且设置默认值 | <aura:attribute name="newExpense" type="yournamespace__Expense__c" | 
| 表达式中含有自定义对象的字段 | <ui:inputNumber value="{!v.newExpense.yournamespace__Amount__c}" label=… /> | 
| javascript函数中含有自定义对象字段 | updateTotal: function(component) { | 
| 在Javascript函数中动态创建新的组件 | var myCmp = $A.createComponent("yournamespace:myComponent", | 
| 在Javascript函数中的接口对比 | aCmp.isInstanceOf("yournamespace:myInterface") | 
| 注册事件 | <aura:registerEvent type="yournamespace:updateExpenseItem" name=… /> | 
| 事件处理 | <aura:handler event="yournamespace:updateExpenseItem" action=… /> | 
| 显式依赖 | <aura:dependency resource="markup://yournamespace:myComponent" /> | 
| Javascript函数中的应用事件 | var updateEvent = $A.get("e.yournamespace:updateExpenseItem"); | 
| 静态资源 | <ltng:require scripts="{!$Resource.yournamespace__resourceName}" styles="{!$Resource.yournamespace__resourceName}" /> | 
作者:吴家二少
博客地址:https://www.cnblogs.com/cloudman-open/
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
Salesforce学习之路(十)Org的命名空间的更多相关文章
- Salesforce学习之路(十三)Aura案例实战分析
		Aura相关知识整合: Salesforce学习之路(十)Aura组件工作原理 Salesforce学习之路(十一)Aura组件属性<aura:attribute /> Salesforc ... 
- Salesforce学习之路(十)Aura组件工作原理
		很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ... 
- Salesforce学习之路(九)Org的命名空间
		1. 命名空间的适用场景 每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件.否则,使用默认命名空间访问组件,系统默认的命名空间为"c". ... 
- Salesforce学习之路(十二)Aura组件表达式
		1. 表达式语法 在上篇文章组件属性示例中,新建了一个属性whom, 引用该属性时使用了表达式:{!v.whom},负责该属性的动态输出. 语法:{!expression} 上述示例中,我们的属性名称 ... 
- Salesforce学习之路-developer篇(五)Aura组件原理及常用属性
		很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ... 
- Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析
		1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ... 
- Salesforce学习之路-admin篇
		Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ... 
- Salesforce学习之路(三)利用VS Code结合Git开发Salesforce
		在前面说了一些有关Admin的知识,但实际开发运用中,仅凭Admin的配置很难满足项目的定制化需求,因此基于CRM的二次开发则应运而生. 由于国内资料相对较少,所以很多入门新手无处下手,那这里就简单介 ... 
- Salesforce学习之路(一)几个简单概念
		Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ... 
随机推荐
- 《深入理解Java虚拟机》-----第9章  类加载及执行子系统的案例与实战
			概述 在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多, Class文件以何种格式存储,类型何时加载.如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户 ... 
- 后渗透神器Cobalt Strike的安装
			0x01 简介 Cobalt Strike集成了端口转发.扫描多模式端口监听Windows exe木马,生成Windows dll(动态链接库)木马,生成java木马,生成office宏病毒,生成木马 ... 
- 移动端前端常见的触摸相关事件touch、tap、swipe
			前端的很多事件在PC端和浏览器端可公用,但有些事件却只在移动端产生,如触摸相关的事件 本文整理了移动端常见的一些事件,包括原生支持的click.touch.tap.swipe事件,也有定义型的gest ... 
- Mac系统 安装Photoshop CC 2018破解版
			应用场景 本人从事前端行业,但是工作中有时也需要会点PS技能,之前一直使用window系统,突然换了Mac其他软件基本都差不多安装完了,就剩下比较难搞的PS.刚开始按照网上乱七八槽的教程下载过好多次都 ... 
- 小白学 Python(9):基础数据结构(列表)(上)
			人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ... 
- 变量 + 数据类型(数字 + 字符串)(day03整理)
			目录 一.上节课回顾 四 编程语言分类 (一) 机器语言 (二)汇编语言 (三) 高级语言 (四) 网络瓶颈效应 五.执行python程序两种方式 (一) 交互式(jupytre) (二) 命令行式( ... 
- OptimalSolution(1)--递归和动态规划(2)矩阵的最小路径和与换钱的最少货币数问题
			一.矩阵的最小路径和 1 3 5 9 1 4 9 18 1 4 9 18 8 1 3 4 9 9 5 8 12 5 0 6 1 14 14 5 11 12 8 8 4 0 22 22 13 15 12 ... 
- Java基础(三十)泛型程序(Generic Programming)
			一.泛型程序的定义和使用 1.为什么要使用泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.同时,使得程序具有更好的可读性和安全性. ArrayList<String&g ... 
- Spring Boot 2.X(十五):集成 Swagger2 开发 API 文档(在线+离线)
			前言 相信很多后端开发在项目中都会碰到要写 api 文档,不管是给前端.移动端等提供更好的对接,还是以后为了以后交接方便,都会要求写 api 文档. 而手写 api 文档的话有诸多痛点: 文档更新的时 ... 
- 27 个问题突破所有重难点,BroadcastReceiver 、ContentProvider 知多少?「建议收藏」
			前言 距离上次更新过去一周多了,打破了之前两到三天一更的惯例,主要还是这部分内容太多了. 原先想把 BroadcastReceiver .ContentProvider 分两篇来总结,但的确,这两大组 ... 
