【问题标题】:Haxe DOMStringMap values not accessibleHaxe DOMStringMap 值无法访问
【发布时间】:2018-09-03 02:52:04
【问题描述】:

我正在尝试在 Haxe 中访问浏览器中元素的“data-*”属性。

var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;

该代码(在纯 javascript 中工作)在 HaxeDevelop 中生成两个编译错误。

  1. “字符串应该是整数”

  2. “对于函数参数‘数据’”

如何在 Haxe 中访问元素数据集?有已知的正确方法吗?

【问题讨论】:

    标签: javascript dom browser haxe


    【解决方案1】:

    我最终使用Element#getAttributeElement#setAttribute 方法来完成相同的功能。

    var element = document.getElementById('#someId')
    var dataLabel = 'label'; //'data-label'
    element.setAttribute('data-' + dataLabel, 5);
    

    【讨论】:

      【解决方案2】:

      我认为这是数组访问运算符在 Haxe 中工作方式的一个缺点。

      只有abstract 类型可以定义数组访问,如the manual states here

      Haxe 的 DOMStringMap 只是一个外部类,因此它不能具有使用 String 作为键而不是 Int 的数组访问。

      现在,有办法解决这个问题。 untyped 关键字 seen here 是您的初始示例可以工作的一种方式。 untyped 不被推荐,但是你应该尽可能避免使用脆弱的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多