2016-08-12 1 views
1

Я получаю следующее исключение:Получение clientBundleFieldNameUnlikelyToCollideWithUserSpecifiedFieldOkay не является функцией

Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : $tmp_0_g$.get_clientBundleFieldNameUnlikelyToCollideWithUserSpecifiedFieldOkay_28_g$(...).style_129_g$ is not a function 
    at Unknown.fBj_g$(BillingOverviewView_BinderImpl.java:75) 
    at Unknown.KPi_g$(BillingOverviewView_BinderImpl.java:43) 
    at Unknown.GPi_g$(BillingOverviewView_BinderImpl.java:31) 
    at Unknown.HPi_g$(BillingOverviewView_BinderImpl.java:28) 
    at Unknown.APi_g$(BillingOverviewView.java:34) 

, но только в Firefox. Он работает без каких-либо проблем в Chrome.

Это мнение, что это упоминается в StackTrace:

class BillingOverviewView extends ViewWithUiHandlers<BillingOverviewUiHandlers> implements BillingOverviewPresenter.MyView { 

    @SuppressWarnings("unused") 
    private final static Logger LOGGER = Logger.getLogger(BillingOverviewView.class.getName()); 

    interface Binder extends UiBinder<Widget, BillingOverviewView> { 
    } 

    @UiField MaterialRow rowShops; 

    @Inject 
    BillingOverviewView(Binder uiBinder) { 
     this.initWidget(uiBinder.createAndBindUi(this)); 
    } 

    @Override 
    public void clearShopCards() { 
     this.rowShops.clear(); 
    } 

    @Override 
    public void addShopCard(MyView view) { 
     MaterialColumn colShop = new MaterialColumn(12, 12, 12); 
     colShop.add(view); 
     this.rowShops.add(colShop); 
    } 

} 

Любая идея, где это идет и почему я получаю это только в Firefox?

Единственное место, где я на самом деле манипулирования идентификаторами здесь:

@Inject 
PaymentMethodTabView(Binder uiBinder) { 

    String id = HTMLPanel.createUniqueId(); 

    this.btnPaymentMethod = new MaterialButton(); 
    this.btnPaymentMethod.setText("PM"); 
    this.btnPaymentMethod.setActivates(id); 

    this.dpPaymentMethod = new MaterialDropDown(id); 
    this.dpPaymentMethod.setConstrainWidth(false); 

    this.dpPaymentMethod.addSelectionHandler(new SelectionHandler<Widget>() { 
     @Override 
     public void onSelection(SelectionEvent<Widget> event) { 
      if(!(event.getSelectedItem() instanceof CreditCardDropDownItem)) { 
       return; 
      } 
      CreditCardDropDownItem item = ((CreditCardDropDownItem)event.getSelectedItem()); 
      CreditCard creditCard = PaymentMethodTabView.this.tokenToCreditCard.get(item.getToken()); 
      PaymentMethodTabView.this.onSelection(creditCard); 
     } 
    }); 

    this.initWidget(uiBinder.createAndBindUi(this)); 

    this.creditCardContainer.setWidget(this.creditCardWidget); 
} 

, но как вы можете видеть, я использую HTMLPanel.createUniqueId(), чтобы убедиться, что я получил уникальные идентификаторы.

Любые идеи?

ответ

2

Добавление gss="true" к этому:

<ui:style gss="true"> 

.shop-panel { 
    margin: 30px; 
    padding: 30px; 

    border-style: solid; 
    border-right: 0; 
    border-left: 0; 
    border-width: 1px; 
    border-color: #AAAAAA; 
} 

.main-content { 
    height: 100%; 
    overflow: auto; 
} 

</ui:style> 

ли трюк.