【问题标题】:Fabric.JS and AngularJS – difference between 0 and '0'Fabric.JS 和 AngularJS——0 和 '0' 的区别
【发布时间】:2018-02-27 21:25:20
【问题描述】:

我正在创建我的 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'

【问题讨论】:

  • 检查 strokeWidthangle 两者都接受类型号作为值。如果您有字符串值,则需要使用parseInt()parseFloat() 进行解析。
  • @Ramesh Rajendran 谢谢大家 - 我的问题的最初范围由你们俩回答。我现在了解差异(即使这对开发人员来说微不足道)。我的基本问题似乎是由我的自定义小部件引起的。我正在为我的应用程序使用这个很棒的小部件工具包:[xel-toolkit.org]。不幸的是,这位非常有才华的 Xel-Toolkit 开发人员没有 Angular 知识,也没有时间解决 Angular 问题。无论如何:我的项目的这一部分在小提琴中:[jsfiddle.net/sharksinn/1z58rjt9/29] – 仅限最新的 Chrome!
  • 它工作正常吗?
  • 如果您有空闲时间,请看一下小提琴。它使问题更加清晰(尤其是 xel-toolkit 的问题,这似乎是主要问题)...

标签: javascript angularjs fabricjs


【解决方案1】:

0 和 '0' 的区别

  • 0 - 是一个整数值(数字)
  • '0' - 是一个字符值(字符串)

在 fabric.js 中,angle 属性只接受数字。您应该将字符串 '0' 解析为 0。

【讨论】:

    【解决方案2】:

    您的小提琴代码正在使用它来发送fabricjs中的值:

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

    this.value 是一个字符串。 要从中获取数字,您需要解析该值。 由于您的元素类型很少,而且可能有很多 setter,因此最好在 setter 中执行转换,以便为每个 setter 使用您需要的特定类型。

    【讨论】:

    • Andrea,代码几乎是厨房水槽示例中的 1:1 代码——除了我使用的是 Xel-Toolkit。我认为您指的是代码的这一部分(其中值定义为 Int):$scope.setStrokeWidth = function(value) { setActiveStyle('strokeWidth', parseInt(value, 10)); }; - 我已经尝试了所有方法,但没有反映我的 strokeWidth 值。无论我使用的是 Float 还是 Int。另一方面,如果我将输入和滑块连接到角度属性,则一切正常。我获取样式的代码部分是否有问题?
    • setActiveStyle 有什么作用?因为不是织物。
    • setActiveStyle 是在 kitchensink 示例(来自 fabricjs.com 的示例)中定义的。显然它正在为对象设置样式属性。定义在你可以在小提琴中看到的js中......
    猜你喜欢
    • 2017-02-28
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2016-01-08
    • 2014-10-09
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多