Ember, Handlebars, Contrib-Ember-Templates создают некорректные шаблоны в мобильных браузерах

Использование плагина Gruntjs contrib-ember-templates дает неверные результаты при просмотре в мобильном браузере.

Сгенерированный шаблон

<div id="ember570" class="ember-view">
<section>
    <div class="center">
        <div class="logo-container">
        </div>
        <div class="misuseAct">
            <script id="metamorph-0-start" type="text/x-placeholder"></S'+'CRIPT>
                <h1>Hello to Splash Page</h1>
                <p>Welcome to my splash page</p>
                <a href="#" data-ember-action="1" class="btn btn-success right" id="proceed">Proceed</a>
            <script id='metamorph-0-end' type='text/x-placeholder'></S'+'CRIPT>
        </div>
    </div>
</section></script></div></div></section></div>

Однако редактирование шаблона с помощью оперативной отладки дает желаемые результаты.

Желаемый шаблон

<div id="ember570" class="ember-view">
<section>
    <div class="center">
        <div class="logo-container">
        </div>
        <div class="misuseAct">
            <script id="metamorph-0-start" type="text/x-placeholder"></script>
                <h1>Hello to Splash Page</h1>
                <p>Welcome to my splash page</p>
                <a href="#" data-ember-action="1" class="btn btn-success right" id="proceed">Proceed</a>
            <script id='metamorph-0-end' type='text/x-placeholder'></script>
        </div>
    </div>
</section></div></div></section></div>

Дополнительная информация

  • Эта проблема появляется только при использовании EmberJS minified (сборка выпуска).

  • Эта проблема не отображается в настольных браузерах.

  • Эта проблема не создает консольных сообщений.

  • Запуск grunt --verbose не показывает сообщений об ошибках / предупреждений.

Технологический стек

NodeJS - v0.10.12

grunt-cli v0.1.9

хрюкать v0.4.1

grunt-contrib-templates - 0.4.10

JQuery - v1.10.2

Они используются contrib-grunt-template и клиентским приложением внешнего интерфейса.

EmberJS - v1.0.0-rc.6-15-gfe89337 (минимизировано)

Руль - 1.0.0

РЕДАКТИРОВАТЬ:

Эта проблема возникает только при использовании представления в шаблоне.

некомпилированный шаблон

<section>
    <div class="center">
        <div class="logo-container">
        </div>
        <div class="misuse">
            {{#if view.showProtection}}
                <h1>{{localise _data_protection_act_header}}</h1>
                <p>{{localise _data_protection_act_body}}</p>
                {{#linkTo "login" classNames="btn btn-success right" id="proceed"}}{{localise _proceed}}{{/linkTo}}
            {{else}}
                <h1>{{localise _misuse_act_header}}</h1>
                <p>{{localise _misuse_act_body}}</p>
                <a href="#" {{action 'agrees' target="view"}} class="btn btn-success right" id="proceed">{{localise _proceed}}</a>
            {{/if}}
        </div>
    </div>
</section>

Индекс

Application.IndexView = Ember.View.extend({
    showProtection: false,
    agrees: function () {
        this.set('showProtection', true);
    }
});

РЕДАКТИРОВАТЬ:

Я сузил это специально для этой строки в шаблоне.

 {{#if view.showProtection}}
    ...
 {{else}}
    ...
 {{/if}}

1 ответ

Решение

Эта проблема была связана с провайдером мобильной передачи данных O2 (возможно, с другими, но не с Vodafone или 3).

По-видимому, из-за довольно строгих политик данных в O2, где они минимизируют, удаляют и делают всякие безумные вещи с файлами, проходящими через их сеть.

Обходной путь предоставляется здесь

Другие вопросы по тегам