Haxe DOMStringMap值无法访问

问题描述 投票:1回答:2

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

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

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

  1. “字符串应该是Int”
  2. “对于函数参数'数据'”

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

javascript dom browser haxe
2个回答
0
投票

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

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

0
投票

我认为这是阵列访问运算符在Haxe中的工作方式的缺点。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.