2016-08-12 47 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中没有任何问题。

这是在堆栈跟踪被提及的观点:

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(),以确保我有唯一的ID。

任何想法?

回答

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> 

的伎俩。

相关问题