关于 SAP Spartacus scss 处理逻辑里的变量 $useLatestStyles

简介: 关于 SAP Spartacus scss 处理逻辑里的变量 $useLatestStyles

如果需要使用 SCSS mixin forVersion(3.1) 在单独库中引入可选样式,并希望查看结果,则 $useLatestStyles 变量需要在本地环境设置为 true.


对于 Spartacus 开发或演示,建议使用最新样式。


为避免在应用程序中频繁更改 $minorVersion,我们提供了一个标志,可用于随时跟上最新版本。


!default 在 Bootstrap Sass 中经常使用。 它类似于反向 !important。 所有引导程序变量都使用 !default 设置,以允许开发人员进一步自定义引导程序。 使用 !default sass 只会定义尚未设置的变量。


这允许更大的灵活性。


下面是一些例子:

//Example1 Dress color = red
$auroras-dress-color: blue;
$auroras-dress-color: red;
//Example2 Dress color = red
$auroras-dress-color: blue !default;
$auroras-dress-color: red;
//Example3 Dress color = blue
$auroras-dress-color: blue;
$auroras-dress-color: red !default;

所以下面这行代码的意思是:

$useLatestStyles: false !default;

如果用户没有定义这个变量,则 $useLatestStyles 的值为默认值即 false,如果用户定义了这个变量的值,则使用用户定义的值,而忽略 false 这个默认值。

这个变量会在 scss 的处理逻辑里被使用:

@function isValidVersion($from, $to: 0)

最后通过 mixin 被外界消费:

@mixin forVersion($from, $to: 0) {
  // We never create content that is part of future releases, this should not really happen.
  @if ($from <= $_fullVersion) {
    @if (
      (isStableVersion($from, $to) and isValidVersion($from, $to)) or
        addBreakingChange($from, $to)
    ) {
      @content;
    }
  }
}

同样的逻辑还有另一个变量:$skipComponentStyles

当且仅当一个 selector 没有定义在变量 $skipComponentStyles 里时,才执行第 25 行的 extend 操作。

下面是 Spartacus style 库的 app.scss 文件:

对于 feature library style 比如下图的 cart style 而言,不应用直接 import 这个 app.scss, 否则会导致客户在 style.scss 里自定义的样式会被覆盖掉。

Spartacus CSS layout:在绘制 padding, margin 和 font-sizes 时,应该使用 rem 而不是 px.

https://github.com/SAP/spartacus/issues/15380

SAP Spartacus 4.0 不支持 Angular 13.

使用下列命令行指定使用 Angular 12 进行 Spartacus 安装:

npx -p @angular/cli@12 ng new appname --style=scss --routing false

OData 服务的实现分为 OData 数据模型的定义和围绕这些数据模型的 CRUD(增删改查) 操作的实现和 Action(function import) 的实现。

  • 数据模型的定义:这部分开发工作,定义 OData 包含哪些实体类型(EntityType),每个类型的名称,key 字段和普通字段的名称,以及这些字段的数据类型,是否能够为 null(通过 nullable 属性控制),是否允许修改等等。数据模型的定义,体现在 OData 元数据里。开发人员可以在浏览器里很方便的获得 XML 或者 JSON 格式的 OData 元数据(在 OData 服务 url 后加上参数 $metadata),并保存到本地。下图是保存到本地的 XML 格式的 OData 元数据。

  • 围绕数据增删改查和包含业务逻辑的 Actioon 的实现。这些实现的语言可以是 ABAP,Java,Node.js 等编程语言。Action 定义在数据模型上,比如订单模型上可以有一个 Release 或者 Approve 的 Action,这些 Action 的代码,编写在 OData 所谓 Function Import 里面。

对于一个 OData 服务来说,一旦数据模型定义完毕,就可以生成元数据了,不需要等到增删改查和 Action 实现完毕。

相关文章
|
2月前
|
存储 数据管理 数据处理
SAP CRM 里 Attachment 搜索的实现逻辑介绍
SAP CRM 里 Attachment 搜索的实现逻辑介绍
|
9月前
|
Web App开发 开发框架 前端开发
SAP Fiori Elements 应用中 table id 的生成逻辑
SAP Fiori Elements 应用中 table id 的生成逻辑
|
2月前
|
前端开发 搜索推荐 JavaScript
Spartacus Cart item 点击了 remove 之后 HTTP Delete 请求的触发逻辑 - Adapter
Spartacus Cart item 点击了 remove 之后 HTTP Delete 请求的触发逻辑 - Adapter
|
2月前
|
前端开发 搜索推荐 开发者
Spartacus empty cart 页面的显示逻辑
Spartacus empty cart 页面的显示逻辑
|
2月前
|
BI 数据库
SAP ABAP ALV 报表单击某列后执行某段 ABAP 逻辑的实现方式 - hotspot 行为实现试读版
SAP ABAP ALV 报表单击某列后执行某段 ABAP 逻辑的实现方式 - hotspot 行为实现试读版
|
2月前
|
JSON 开发者 数据格式
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
|
2月前
|
搜索推荐 开发者 UED
关于 SAP Spartacus 层的 UI 设计
关于 SAP Spartacus 层的 UI 设计
|
2月前
|
开发者 UED
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
|
9月前
|
前端开发
Spartacus 应用中 Lazy Loaded Module 初始化逻辑的实现方案
Spartacus 应用中 Lazy Loaded Module 初始化逻辑的实现方案
|
9月前
|
缓存 索引
SAP ABAP 系统传输请求(Transport Request)导入到其他系统背后执行的逻辑
SAP ABAP 系统传输请求(Transport Request)导入到其他系统背后执行的逻辑