乐趣区

关于javascript:关于-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/sparta…

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 元数据。

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

对于一个 OData 服务来说,一旦数据模型定义结束,就能够生成元数据了,不须要等到增删改查和 Action 实现结束。

退出移动版