2013-03-22 67 views
4

我们已经使用GWT大约4年了。本地GWT中缺少的最常讨论的功能之一是数据绑定。通过AngularJs阅读另一个谷歌产品,我遇到了http://devgirl.org/2013/03/21/fun-with-angularjs/。我不希望使用GXT或任何其他第三方工具。我也希望避免与发电机相关的解决方案。如何在原生GWT中实现双向数据绑定?

  1. 有什么办法可以在纯原生GWT中实现吗?

  2. 为什么GWT不能提供这个盒子有什么特别的原因吗?

+2

这是这个问题的正确地方吗? – 2013-03-22 10:43:07

+0

任何地方我可以查询stackexchange?程序员.stackexchange.com中的GWT标签很难被注意到只有15个查询! http://programmers.stackexchange.com/questions/tagged/gwt – SSR 2013-03-22 10:58:15

+0

你发布的devgirl文章中的例子已经在GWT中实现了。如果将变量绑定到屏幕上的许多位置并更新该变量,则其新值将反映在引用它的所有位置。盒子外面。 – 2013-03-22 11:34:56

回答

1

您试过GWT Pectin

前段时间我在一个较大的项目中成功地使用了它。

+0

自2010年(3年)以来,我没有看到GWT果胶中有任何活跃的发展,它不会考虑新的gwt功能! – SSR 2013-03-26 10:39:51

+0

你是对的!我曾经要求开发者制作一个新版本,他很快做到了。但它绝对没有被积极开发。但是,它通过提供实际的实现来回答你的问题。就我个人而言,当我使用它时,我非常喜欢图书馆的表现力。 – Hbf 2013-03-27 10:03:11

0

我读过你在Devgirl上提到的有关AngularJS的文章。在那篇文章中,“2路数据绑定”是指代码的属性自动在视图上反映视图当前正在显示的数据发生的变化。

这在GWT自2.1版本与Cell Widgets

在单元格小工具文档我它上面链接的第一段实现清楚地指出:

的细胞插件可以接受来自数据任何类型的数据源。数据 模型处理异步更新以及推送更新。 当您更改数据时,视图会自动更新。

如果你想在GWT的东西基本在你需要写的onkeyup处理程序devGirl后的example做(在AngularJS你应该写一个Scope这个目的),将复制的内容,你进入到链接的标签。就像这样:

... 
final TextBox nameField = new TextBox(); 
final Label enteredName = new Label(""); 
... 
    public void onKeyUp(KeyUpEvent event) { 
     enteredName.setText(nameField.getText()); 
    } 
...