无法访问 Haxe DOMStringMap 值
Haxe DOMStringMap values not accessible
我试图在 Haxe 的浏览器中访问元素的 'data-*' 属性。
var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;
该代码(在 javascript 中正常工作)在 HaxeDevelop 中产生了两个编译错误。
"String should be Int"
"For function argument 'data'"
如何访问 Haxe 中的元素数据集?有已知的正确方法吗?
我最终使用 Element#getAttribute and Element#setAttribute 方法来完成相同的功能。
var element = document.getElementById('#someId')
var dataLabel = 'label'; //'data-label'
element.setAttribute('data-' + dataLabel, 5);
我认为这是数组访问运算符在 Haxe 中工作方式的缺点。
只有 abstract
类型可以定义数组访问,如 the manual states here。
Haxe 的 DOMStringMap 只是一个外部 class,因此它不能使用 String
作为键而不是 Int
.[=18 的数组访问=]
现在,有很多方法可以解决这个问题。 untyped
关键字 seen here 是您的初始示例可以工作的一种方式。 untyped
虽然不推荐,但它是易碎代码的滑坡,您应尽可能避免。
我试图在 Haxe 的浏览器中访问元素的 'data-*' 属性。
var element = document.getElementById('#someId');
var dataLabel = 'label'; //'data-label'
element.dataset[dataLabel] = 5;
该代码(在 javascript 中正常工作)在 HaxeDevelop 中产生了两个编译错误。
"String should be Int"
"For function argument 'data'"
如何访问 Haxe 中的元素数据集?有已知的正确方法吗?
我最终使用 Element#getAttribute and Element#setAttribute 方法来完成相同的功能。
var element = document.getElementById('#someId')
var dataLabel = 'label'; //'data-label'
element.setAttribute('data-' + dataLabel, 5);
我认为这是数组访问运算符在 Haxe 中工作方式的缺点。
只有 abstract
类型可以定义数组访问,如 the manual states here。
Haxe 的 DOMStringMap 只是一个外部 class,因此它不能使用 String
作为键而不是 Int
.[=18 的数组访问=]
现在,有很多方法可以解决这个问题。 untyped
关键字 seen here 是您的初始示例可以工作的一种方式。 untyped
虽然不推荐,但它是易碎代码的滑坡,您应尽可能避免。