【问题标题】:Angular2 Svg Text attribute bindingAngular2 Svg 文本属性绑定
【发布时间】:2016-08-18 02:57:29
【问题描述】:

我想在 Angular 2 中动态创建一个 svg。

我有几个属性要添加,例如 x、y、text-anchor、font-size、font-family 和 fill,但只有 font-size 适合我。填充不想与 [ ] 一起使用。

<svg xmlns="http://www.w3.org/2000/svg" height="100%" width="100%">
     <svg:text
            [attr.x]="0"
            [attr.y]="100"
            [attr.text-anchor]="start"
            [attr.font-size]="29"
            [attr.font-family]="Helvetica"
            attr.fill="#77777">
                <tspan
                    x="0"
                    dy="0">Random Text</tspan>
    </svg:text>
 </svg>

Plunker:http://plnkr.co/edit/D0eyyW9flV92rmoh8o85

如何绑定到上面列出的属性?

【问题讨论】:

    标签: svg data-binding angular


    【解决方案1】:

    具有string 格式的硬编码值,否则 Angular 将在组件中查找具有该名称的变量以更新绑定。您还应该将fill 属性值指定为#777 而不是#777777。在 IE 浏览器上运行应用程序时需要#777777

     <svg:text
            [attr.x]="0"
            [attr.y]="100"
            [attr.text-anchor]="start"
            [attr.font-size]="29"
            [attr.font-family]="'Helvetica'"
            [attr.fill]="'#777'">
                <tspan
                    x="0"
                    dy="0">Random Text</tspan>
    </svg:text>
    

    请记住 [] 符号内的每个属性绑定,attr.fill 的每个属性绑定都一样

    Demo Here

    【讨论】:

    • 我不得不使用[attr.text-anchor]="'start'" 作为文本锚,但这似乎解决了我的问题。不起作用的一件事是 x 坐标。我把它改成50,但结果是一样的。有什么想法吗?
    • 我可以通过改变看到改变正在发生......看这里plnkr.co/edit/FpqOQUUllMrs0ANtCBGu?p=preview
    • 我更改了文本的 x 属性,而不是 tspan 的。他们两个都不应该工作吗?
    猜你喜欢
    • 2019-04-12
    • 2015-09-28
    • 1970-01-01
    • 2017-03-01
    • 2017-04-28
    • 2018-02-10
    • 2016-12-04
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多