4

GWT を約 4 年間使用しています。ネイティブ GWT に欠けている最もよく議論される機能の 1 つは、データ バインディングです。AngularJs の別の Google サービスを読んで、http://devgirl.org/2013/03/21/fun-with-angularjs/に出会いました。GXT やその他のサードパーティ製ツールを使用したくありません。また、ジェネレーター関連のソリューションは避けたいと考えています。

  1. これを純粋なネイティブ GWT で実装できる方法はありますか?

  2. GWT がこれをすぐに提供できない特定の理由はありますか?

4

3 に答える 3

1

GWTペクチンを試しましたか?

しばらく前に、より大きなプロジェクトでそれをうまく使用しました。

于 2013-03-26T07:22:26.200 に答える
1

非侵襲的で、データバインディングのみに焦点を当てた HexaBinding を試すことをお勧めします。リンクは次のとおりです: https://github.com/ltearno/hexa.tools/blob/master/hexa.binding/README.md

純粋な Java、GWT で動作し、まもなく Android と JavaFX でも動作する予定です。J2Objc でも動作する可能性がありますが、まだわかりません...

于 2015-05-17T08:03:07.010 に答える
0

AngularJS について devgirl で言及した投稿を読みました。その投稿では、「双方向データバインディング」は、ビューが現在表示しているデータに発生した変更をビューに自動的に反映するコードのプロパティを指します。

これは、 Cell Widgetsを使用してバージョン 2.1 以降の GWT で実現されます。

上記でリンクしたセルウィジェットのドキュメントの最初の段落では、次のことが明確に述べられています。

セル ウィジェットは、あらゆるタイプのデータ ソースからのデータを受け入れることができます。データ モデルは、非同期更新とプッシュ更新を処理します。データを変更すると、ビューが自動的に更新されます。

GWT で devGirl 投稿の例のように基本的なことをしたい場合は、入力した内容をリンクされたラベルにコピーする onKeyup ハンドラーを作成する必要があります (AngularJS では、この目的のためにScopeを作成する必要があります)。このようなもの:

...
final TextBox nameField = new TextBox();
final Label enteredName = new Label("");
...
    public void onKeyUp(KeyUpEvent event) {
        enteredName.setText(nameField.getText());
    }
...
于 2013-04-20T22:48:26.330 に答える