Fabric.JS和AngularJS - 0和'0'之间的差异

时间:2017-09-19 07:33:35

标签: javascript angularjs fabricjs

我正在使用像“width”,“height”等常用属性创建FabricJS对象,如下所示:

var textSample = new fabric.Textbox(text.slice(0, getRandomInt(0, text.length)), {
    includeDefaultValues: true,
    fontSize: 20,
    left: getRandomInt(350, 400),
    top: getRandomInt(350, 400),
    fontFamily: 'Arial',
    fill: '#000000',
    fontWeight: '',
    originX: 'left',
    width: 300,
    hasRotatingPoint: true,
    centerTransform: true,
    name: "Text",
    icon: "format-size",
    fontWeight: 400,
    charSpacing: '0',
    angle: '0',
    strokeWidth: 0
});

Havin有一些“零”值的问题。

对于“角度”:如果我正在使用

angle: '0',

一切都很好(就我在自定义数字输入中显示这一点而言。

angle: 0,

不会在我的numberinput

中显示值“零”

另一方面使用“strokeWidth”会破坏我的文本框,只有在我手动更改值时才会显示内容:

strokeWidth: '0'

2 个答案:

答案 0 :(得分:1)

0和' 0'

之间的差异
  • 0 - 是整数值(数字)
  • ' 0' - 是字符值(字符串)
  

在fabric.js中,angle属性只接受数字' s。你应该解析字符串' 0' 0到了0.

答案 1 :(得分:0)

您的小提琴代码用于在fabricjs中发送值:

        $element.on('change keyup select', function () {
            if ($element[0].type !== 'checkbox') {
                $scope[setter] && $scope[setter](this.value);
            }
        });

this.value是一个String。 要从中获取数字,您需要解析该值。 由于你有很少的元素类型,可能还有很多setter,最好在setter中执行转换,这样每个setter都可以使用你需要的特定类型。