【问题标题】:Angular / svg - pass data into svgAngular / svg - 将数据传递到 svg
【发布时间】:2019-03-13 05:25:21
【问题描述】:

我在这里有一个堆栈闪电战 - https://stackblitz.com/edit/angular-vkwets?file=src%2Fapp%2Fdonuts.template.html

我有一个 Angular 组件,它为传​​递给组件的数组的每个数据点创建一个 svg 圆环图。

我可以访问传递给组件的数据,但可以在 svg 中使用它吗?

我想使用传递给组件的数据更新 svg 中的“stroke-dasharray”。

类似stroke-dasharray=donut.percent 100-donut.perecent

<div>
  <ul>
    <li *ngFor="let donut of donutData">
      {{donut.percent}}
      <svg width="20%" height="20%" viewBox="0 0 42 42" class="donut">
        <circle class="donut-hole" 
                cx="21" 
                cy="21" 
                r="15.91549430918954" 
                fill="#fff"></circle>

        <circle class="donut-ring" 
                cx="21" 
                cy="21" 
                r="15.91549430918954" 
                fill="transparent" 
                stroke="#d2d3d4" 
                stroke-width="3"></circle>

        <circle class="donut-segment" 
                cx="21" 
                cy="21" 
                r="15.91549430918954" 
                fill="transparent" 
                stroke="green" 
                stroke-width="3" 
                stroke-dasharray="60 40"
                stroke-dashoffset="25"></circle>
      </svg>

    </li>
  </ul>
</div>

【问题讨论】:

    标签: angular svg


    【解决方案1】:

    将值转换为字符串并使用attribute binding:

    [attr.stroke-dasharray]="donut.percent + ' ' + (100 - donut.percent)"
    

    请参阅this stackblitz 以获取演示。

    【讨论】:

      猜你喜欢
      • 2019-05-17
      • 1970-01-01
      • 2016-03-18
      • 2021-09-19
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      相关资源
      最近更新 更多