我试图在JSNI中使用css资源的客户端包,但是找不到任何有用的代码。我想知道如何在JSNI中调用css资源,以及如何准确地使用JSNI中的客户端包。
我的正常代码:--
Resource.INSTANCE.button().ensureInjected();
Resource res = GWT.create(Resource.class);
button.setStyleName(res.button().gwtbutton());怎么用jsni写字?
这里的资源->是接口扩展客户端包。css按钮-->是css。
我在这个链接https://groups.google.com/forum/#!topic/google-web-toolkit/94v4tjCZiBo中读到,我们可以通过jsni使用CssResource。但我不清楚他的用法,它的语法。
发布于 2015-01-12 10:33:49
这里没有魔法(好吧,有一点,但在幕后)。Resource接口的实现是由GWT自动生成的,因此当您调用res.button().gwtbutton()时,它将为您从CSS文件中引用的样式返回一个正确的名称。这个名字可能会被混淆,加上前缀等等。这对你来说并不重要--最终它只是一个字符串,一个样式的名字。只需将它作为一个String传递给您的JSNI方法:
public native void addStyle(String style) /*-{
// Add style to a DOM element
}-*/;
// Invoke like so:
addStyle(res.button().gwtbutton());如果您想在JSNI代码中直接使用您的ClientBundle:
// First, get Resource instance from a static field
var resource = @package.Resource::INSTANCE;
// Then, get the CssResource with the style
var button = resource.@package.Resource::button()();
// Finally, get the style's name
var gwtButton = button.@package.Button::gwtButton()();用package.Resource代替Resource接口的正确限定名(包+类名)。如果需要的话,使用提供的代码完成。对button方法返回的类型也这样做(可能是一些扩展CssResource的接口)。
如果您对语法感到困扰,请使用挖掘文档或阅读一些关于的教程--它与JSNI有很多相似之处,并且可能会有更好的文档记录。
https://stackoverflow.com/questions/27899329
复制相似问题