Javascript Fabric.JS和AngularJS–;0和'之间的差异;0';

Javascript Fabric.JS和AngularJS–;0和'之间的差异;0';,javascript,angularjs,fabricjs,Javascript,Angularjs,Fabricjs,我正在使用一些常用属性创建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), font

我正在使用一些常用属性创建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
});
有一些关于“零”值的问题

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

angle: '0',
一切都很好(在我的自定义数字输入中显示)

angle: 0,
不会在我的数字输入中显示值“零”

在另一侧使用“strokeWidth”将打破我的文本框,仅当我手动更改该值时才会显示内容:

strokeWidth: '0'
0和“0”之间的差异
  • 0-是整数值(数字)
  • “0”-是一个字符值(字符串)
在fabric.js中,
angle
属性只接受数字。您应该将字符串“0”解析为0


您的fiddle代码正在使用它发送fabricjs中的值:

        $element.on('change keyup select', function () {
            if ($element[0].type !== 'checkbox') {
                $scope[setter] && $scope[setter](this.value);
            }
        });
此.value是一个字符串。 要从中获取数字,您需要解析该值。
由于元素类型很少,而且可能有很多setter,因此最好在setter中执行转换,以便每个setter都可以使用所需的特定类型。

检查这一点,这两个setter都接受类型number作为值。如果有字符串值,则需要使用
parseInt()
parseFloat()进行解析
@Ramesh Rajendran谢谢大家–我的问题的初始范围由你们两人回答。我现在理解了区别(即使这对开发人员来说微不足道)。我的基本问题似乎是由我的自定义小部件引起的。我正在为我的应用程序使用这个出色的小部件工具包:[].不幸的是,Xel工具包的非常有才华的开发人员没有角度知识,也没有时间解决角度问题。总之:我的项目的这部分是一个提琴:[]-仅限最新的Chrome!它可以正常工作吗?如果你有空,就看一下提琴。它可以让问题更清楚(特别是xel工具包的问题,它似乎是主要的问题)…Andrea,代码几乎是kitchensink示例中的1:1–除了我使用的xel工具包。我想您指的是代码的这一部分(其中值定义为Int):
$scope.setStrokeWidth=function(value){setActiveStyle('strokeWidth',parseInt(值,10));}
–我已经尝试了所有方法,但是我的strokeWidth值没有反映出来。无论我使用的是Float还是Int。另一方面,如果我将输入和滑块连接到angle属性,一切都正常。我获得样式的代码部分是否有问题?setActiveStyle做什么?因为我这不是织物。setActiveStyle是在kitchensink示例(来自fabricjs.com的示例)中定义的。显然,它是在为对象设置样式属性。定义在js中,你可以在fiddle中看到。。。