Composite などの GWT ビューを使用している新しいプロジェクトがあります。
ProductList
GinInjector を使用して、メイン メニュー (以下のような) にアイテムを注入しました。これはうまくいきます!
小さなコンポーネントからメイン メニューの項目への参照を更新するためにどこかで参照したいと考えています。私はこの方法でそれを注入しようとします:
public class ProductForm extends Composite {
...
@Inject
ProductList list;
....
}
しかし、私が を使用すると、list
常にnull
. これにより、ProductList
は次のように定義されます。
public class MyModule extends AbstractGinModule {
...
@Override
protected void configure() {
bind(ProductList.class).asEagerSingleton();
bind(ProductForm.class).asEagerSingleton();
}
...
}
私が間違っていることは何ですか?
解決策: ProductForm が UIBinder の @UIField タグを使用する ProductList の要素であることを言い忘れたため、それを挿入すると、UIBinder を使用して作成されたオブジェクトではなく、新しいオブジェクトが作成されます。
@UIField 属性以外のビュー間の直接参照が不要になるように、プレゼンターとイベント バスを含めるようにコードを再構築する必要がありました。