Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Gwt define-property не генерирует новую перестановку компиляции

Автор вопроса: HongОтветов: 1

Я добавил следующее в myModule.gwt.xml. Я ожидал, что при компиляции он сгенерирует 6 * 2 перестановки. Однако он по-прежнему генерировал только шесть перестановок. Я что-то там пропустил?

<define-property name="mobile.user.agent" values="mobile, not_mobile" />

<property-provider name="mobile.user.agent"><![CDATA[
{
 var ua = window.navigator.userAgent.toLowerCase();
 if ( ( ua.indexOf('android') != -1) ||
   ( ua.indexOf('iphone') != -1) ||
   ( ua.indexOf('midp') != -1) ||
   ( ua.indexOf('opera mobi') != -1) ||
   ( ua.indexOf('opera mini') != -1) ||
   ( ua.indexOf('blackberry') != -1)  )
 { return 'mobile'; }

 else { return 'not_mobile';}
}
 ]]></property-provider>

Я вижу, что файл myModule.nocache.js содержит следующее:

u[sb]=function(){{var a=window.navigator.userAgent.toLowerCase();if(a.indexOf(tb)!=-1||(a.indexOf(ub)!=-1|| (a.indexOf(vb)!=-1||(a.indexOf(wb)!=-1||(a.indexOf(xb)!=-1||a.indexOf(yb)!=-1) )))){return zb}else{return Ab}}};t[sb]={mobile:0,not_mobile:1};

permutationgwt

Ответы

Ответ 1 · Jeroen

Если вы оставите это так, ничего не произойдет. Вам нужно создать правило отложенной привязки на основе вашего свойства. Таким образом, для ваших мобильных браузеров вы, вероятно, захотите иметь другие реализации для некоторых интерфейсов, чем для настольных браузеров (скорее всего, интерфейсы, связанные с представлением). Это может хорошо сочетаться с шаблоном MVP, где вы можете выбирать различные реализации представления на основе свойства модуля.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы