Aurelia:使用 jspm 包中的 SVG
Aurelia: using an SVG from a jspm package
我正在使用 CSS 库 (Salesforce lightning),该库使用 SVG 作为图标。他们的图标标记是:
<svg aria-hidden="true" class="slds-icon slds-icon--large slds-icon-standard-opportunity">
<use xlink:href="path/to/symbols.svg#opportunity"></use>
</svg>
我已经用 jspm 安装了这个库的 npm 包。这个用于图标的 path/to/svg/symbols.svg
现在在我的 jspm_packages 目录中。在我自己的组件中引用此路径的最佳方式是什么?我正在考虑几个选项:
1。复制资源到我自己的assets文件夹
将 svg 文件复制到我自己的资产文件夹中,然后将 link 硬编码到我的组件中的这个文件中。
2。 Link直接到jspm_packages
中的路径
真的不想这样做。我也认为这在捆绑时会很痛苦。
3。从jspm_packages
动态获取路径
以同样的方式<require from="package-name/style.css">
你能以某种方式获得jspm描述的package-name
的路径吗?
4。为 SVG 文件添加资源插件。
需要降价文件的自定义处理程序显示在 this video 第 44 分钟处。我尝试对 SVG 文件(以及作为测试的 markdown 文件)执行相同的操作,但即使逐字复制他的示例并配置 aurelia 以使用该插件也无济于事。当尝试执行 <require from="package-name/symbols.svg">
时,aurelia 仍然会寻找 symbols.svg.js
,这表明该插件并未真正被使用。是否有完整的代码示例说明这一切应该如何工作?
选项 #3(动态获取路径)应该有效:
let url = System.normalizeSync('salesforce-ux/design-system/assets/icons/utility-sprite/svg/symbols.svg') + '#warning';
创建一个自定义元素来封装所有逻辑可能会很好。然后你就可以替换这个:
<svg aria-hidden="true" class="slds-icon slds-icon--large slds-icon-standard-opportunity">
<use xlink:href="path/to/symbols.svg#opportunity"></use>
</svg>
有了这个:
<suds-icon icon="opportunity" size="large"></suds-icon>
我正在使用 CSS 库 (Salesforce lightning),该库使用 SVG 作为图标。他们的图标标记是:
<svg aria-hidden="true" class="slds-icon slds-icon--large slds-icon-standard-opportunity">
<use xlink:href="path/to/symbols.svg#opportunity"></use>
</svg>
我已经用 jspm 安装了这个库的 npm 包。这个用于图标的 path/to/svg/symbols.svg
现在在我的 jspm_packages 目录中。在我自己的组件中引用此路径的最佳方式是什么?我正在考虑几个选项:
1。复制资源到我自己的assets文件夹
将 svg 文件复制到我自己的资产文件夹中,然后将 link 硬编码到我的组件中的这个文件中。
2。 Link直接到jspm_packages
中的路径真的不想这样做。我也认为这在捆绑时会很痛苦。
3。从jspm_packages
动态获取路径以同样的方式<require from="package-name/style.css">
你能以某种方式获得jspm描述的package-name
的路径吗?
4。为 SVG 文件添加资源插件。
需要降价文件的自定义处理程序显示在 this video 第 44 分钟处。我尝试对 SVG 文件(以及作为测试的 markdown 文件)执行相同的操作,但即使逐字复制他的示例并配置 aurelia 以使用该插件也无济于事。当尝试执行 <require from="package-name/symbols.svg">
时,aurelia 仍然会寻找 symbols.svg.js
,这表明该插件并未真正被使用。是否有完整的代码示例说明这一切应该如何工作?
选项 #3(动态获取路径)应该有效:
let url = System.normalizeSync('salesforce-ux/design-system/assets/icons/utility-sprite/svg/symbols.svg') + '#warning';
创建一个自定义元素来封装所有逻辑可能会很好。然后你就可以替换这个:
<svg aria-hidden="true" class="slds-icon slds-icon--large slds-icon-standard-opportunity">
<use xlink:href="path/to/symbols.svg#opportunity"></use>
</svg>
有了这个:
<suds-icon icon="opportunity" size="large"></suds-icon>