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">
<aura:component implements="c:myInterface">

Apex控制类 <aura:component controller="ExpenseController">
属性的类型为自定义对象 <aura:attribute name="expense" type="Expense__c" /> 
属性的类型为自定义对象,并且设置默认值
<aura:attribute name="newExpense" type="Expense__c"
default="{ 'sobjectType': 'Expense__c',
'Name': '',
'Amount__c': 0,

}" />
表达式中含有自定义对象的字段 <ui:inputNumber value="{!v.newExpense.Amount__c}" label=… />
javascript函数中含有自定义对象字段
updateTotal: function(component) {

for(var i = 0 ; i < expenses.length ; i++){
var exp = expenses[i];
total += exp.Amount__c;
}

}
在Javascript函数中动态创建新的组件
var myCmp = $A.createComponent("c:myComponent", {},
function(myCmp) { }
);
在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">
<aura:component implements="yournamespace:myInterface">

Apex控制类 <aura:component controller="yournamespace.ExpenseController">
属性的类型为自定义对象 <aura:attribute name="expenses" type="yournamespace__Expense__c[]" />
属性的类型为自定义对象,并且设置默认值
<aura:attribute name="newExpense" type="yournamespace__Expense__c"
default="{ 'sobjectType': 'yournamespace__Expense__c',
'Name': '',
'yournamespace__Amount__c': 0,

}" />
表达式中含有自定义对象的字段 <ui:inputNumber value="{!v.newExpense.yournamespace__Amount__c}" label=… />
javascript函数中含有自定义对象字段
updateTotal: function(component) {

for(var i = 0 ; i < expenses.length ; i++){
var exp = expenses[i];
total += exp.yournamespace__Amount__c;
}

}
在Javascript函数中动态创建新的组件
var myCmp = $A.createComponent("yournamespace:myComponent",
{},
function(myCmp) { }
);
在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的命名空间的更多相关文章

  1. Salesforce学习之路(十三)Aura案例实战分析

    Aura相关知识整合: Salesforce学习之路(十)Aura组件工作原理 Salesforce学习之路(十一)Aura组件属性<aura:attribute /> Salesforc ...

  2. Salesforce学习之路(十)Aura组件工作原理

    很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ...

  3. Salesforce学习之路(九)Org的命名空间

    1. 命名空间的适用场景 每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件.否则,使用默认命名空间访问组件,系统默认的命名空间为"c". ...

  4. Salesforce学习之路(十二)Aura组件表达式

    1. 表达式语法 在上篇文章组件属性示例中,新建了一个属性whom, 引用该属性时使用了表达式:{!v.whom},负责该属性的动态输出. 语法:{!expression} 上述示例中,我们的属性名称 ...

  5. Salesforce学习之路-developer篇(五)Aura组件原理及常用属性

    很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ...

  6. Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析

    1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ...

  7. Salesforce学习之路-admin篇

    Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ...

  8. Salesforce学习之路(三)利用VS Code结合Git开发Salesforce

    在前面说了一些有关Admin的知识,但实际开发运用中,仅凭Admin的配置很难满足项目的定制化需求,因此基于CRM的二次开发则应运而生. 由于国内资料相对较少,所以很多入门新手无处下手,那这里就简单介 ...

  9. Salesforce学习之路(一)几个简单概念

    Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ...

随机推荐

  1. Attention机制全解

    前言 之前已经提到过好几次Attention的应用,但还未对Attention机制进行系统的介绍,之后的实践模型attention将会用到很多,因此这里对attention机制做一个总结. Seq2S ...

  2. 手机号码格式化显示javascript

    /*手机代码格式化一般与Object.oninput=function(){}连用*/ function phoneFormat(phone){ if(phone.length <= 3 ){ ...

  3. MFC::Visual studio ? 对应VC6-14

    VC6VC7: Visual studio.netVC7.1: Visual studio 2003VC8: Visual studio 2005VC9: Visual studio 2008VC10 ...

  4. maven 打包 spring boot 生成docker 镜像

    1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...

  5. vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)

    _ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...

  6. git中fatal: Authentication failed的问题

    git中fatal: Authentication failed的问题 有两种办法,一种是删除重新认证,另一种是使用Ssh 删除重新认证 有控制面板->用户账户->管理windows凭据- ...

  7. QButtonGroup 的使用

    1.3以后尽量手写,因为没有现在的控件了 2. // lyy : 2016/8/26 12:17:41 说明:存放radioButton QButtonGroup *buttonGroup; // l ...

  8. Spring Cloud ---- 服务消费与负载均衡(Rest + Ribbon )

    上一篇主要写了基于Eurake的服务的注册,主要就是创建注册中心,创建服务者,将服务者注册到注册中心,完成服务的暴露.这一篇主要写服务的消费与服务消费的负载均衡. 服务的调用方式有两种,Rest + ...

  9. LeetCode刷题笔记(1)常用知识点

    1.Integer.parseInt(String s, int radix)方法的作用是:将radix进制的字符串s转化成10进制的int型数字并返回. Integer.valueof(String ...

  10. JS旋转和css旋转

    js旋转 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <styl ...