- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JsInterop 中创建了自己的自定义数组:
@JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Array")
public interface Array<T>
{
public void push(T value);
@JsProperty(name = "length")
public int getLength();
@JsProperty(name = "length")
void setLength(int newLength);
@JsOverlay
default T get(int index) {
return JsArrayHelper.getArrayValue(this, index);
}
}
这是按比例缩小的 JsArrayHelper 类:
public class JsArrayHelper
{
//TODO: Eliminate JSNI. Better way to do this?
public static native <T> T getArrayValue(Array<T> a, int i) /*-{
return a[i];
}-*/;
}
有没有更好的方式获取数组的值而不是使用 JSNI?
最佳答案
使用 com.google.jsinterop:base
lib,这个 lib 应该包含 JsInterop 无法完成的任何实用程序,并且 lib 将保持与 GWT 和 j2cl 的兼容性。该库非常小(只有 10 个类,其中 2 个是内部类),所以只需将它添加到您的项目中并探索它的所有实用程序。
因此,而不是您的自定义 Array<T>.get(int)
和 JsArrayHelper
类使用 jsinterop.base.JsArrayLike<T>.getAt(int)
.
关于java - JsInterop - 获取数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950464/
我创建了一个新的 ASP.NET 5 MVC Web 应用程序,它托管一个带有一些 .net blazor wasm 组件的 razor 类库和一个名为 Elsa 的第 3 方库。一切似乎都正常,但是
我在 JsInterop 中创建了自己的自定义数组: @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Array") pu
尝试使用 JsInterop 通过 Javascript 与 LibGDX 项目进行通信。我正在关注“将 Java 类型导出到 JavaScript”示例 here .它不起作用:未捕获的 Refer
我有这些在 ASP.NET Core 服务器和 Javascript 之间发送的数据结构。数据以使用 websocket 消息序列化的 JSON 格式发送。 在这个例子中,对象有一个名为 Text 的
我正在使用 Gwt,想尝试 JsInterop。 我定义了一个用@JsType注释的简单POJO。Idea 在项目中看到注释类型,但构建失败,并出现注释类未定义的错误。 GWT 版本 2.8.1。GW
我这里有一些原生 JS 测试代码 (mydialog.js) var MyDialog = { foo : function() { console.log("foo"
我正在使用 GWT 2.8,并且正在为 javascript 库开发包装器。 我试图包装的 javascript 类的属性之一是一个函数。我希望包装器尽可能接近 native javascript。我
我正在使用 GWT,并尝试导出一个 java 类以在我的 HTML 中的 javascript 中使用。这是我想使用 jsinterop 导出到 javascript 的 java 类。 packag
查看此文档: https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit 导出一个java
在 ASP.Net Core 中,我正在尝试从 C# 代码为 Google map 构建基本绑定(bind)。使用 JSInterop 我可以成功地将字符串传递给 JavaScript 函数,但是当我
问题涉及客户端 Blazor 组件。该组件包含一个被组件变量隐藏的 div( bool 打开)。 我需要组件在组件代码文件中显示 div 后运行一些 Javascript(以便调整它在屏幕上的位置),
问题涉及客户端 Blazor 组件。该组件包含一个被组件变量隐藏的 div( bool 打开)。 我需要组件在组件代码文件中显示 div 后运行一些 Javascript(以便调整它在屏幕上的位置),
我目前正在将我的 Gwt 2.7 项目升级到 2.8-beta1 并且我正在尝试从 JSNI 重构 Javascript 插件包装器到 JsInterop。 这里是 JSNI 包装器: public
我正在运行一个 GWT 应用程序,我想用 JsInterop 快速测试一些东西。 具体来说,我导出了一个枚举: package com.mypackage.test @JsType enum MyEn
您好,我正在尝试使用 FileReader API 从本地存储加载文件。我已直接在 HTML 页面中测试了 js 方法,并且它有效。 但是,当从 Blazor - JSRuntime 调用它时,我收到
尝试让 Blazor 服务器端应用程序正常运行。我有一个 uploader 组件,但在客户端解决每个 promise 后它不会 InvokeAsync 。它等待所有图像加载,然后调用 C# 方法。如何
我有这段代码,我想用它来初始化()一个第三方 Javascript 库: @JsType(namespace = JsPackage.GLOBAL, name = "Kinvey", isNative
我想像这样包装一个 javascript 代码: map.addMarker({ lat: -12.043333, lng: -77.028333, d
我正试图让它按照 Microsoft's documentation 工作. 下面的脚本代码在现有的 React 应用程序中完美运行,我正在尝试将该应用程序移植到 Blazor。脚本加载并初始化 -
我是 .NetCore Blazor 的新手,正在尝试将 ExampleJsInterop JavaScript 代码转换为 TypeScript。我在转换以下代码时遇到问题: window.exam
我是一名优秀的程序员,十分优秀!