首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JSNI中使用资源束(Client)?

如何在JSNI中使用资源束(Client)?
EN

Stack Overflow用户
提问于 2015-01-12 09:59:14
回答 1查看 277关注 0票数 1

我试图在JSNI中使用css资源的客户端包,但是找不到任何有用的代码。我想知道如何在JSNI中调用css资源,以及如何准确地使用JSNI中的客户端包。

我的正常代码:--

代码语言:javascript
复制
 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。但我不清楚他的用法,它的语法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 10:33:49

这里没有魔法(好吧,有一点,但在幕后)。Resource接口的实现是由GWT自动生成的,因此当您调用res.button().gwtbutton()时,它将为您从CSS文件中引用的样式返回一个正确的名称。这个名字可能会被混淆,加上前缀等等。这对你来说并不重要--最终它只是一个字符串,一个样式的名字。只需将它作为一个String传递给您的JSNI方法:

代码语言:javascript
复制
public native void addStyle(String style) /*-{
    // Add style to a DOM element
}-*/;

// Invoke like so:
addStyle(res.button().gwtbutton());

如果您想在JSNI代码中直接使用您的ClientBundle:

代码语言:javascript
复制
// 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有很多相似之处,并且可能会有更好的文档记录。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27899329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档