Как создать макет Kendo из существующего HTML?

0

Я хотел бы использовать часть страницы для моего макета Kendo вместо того, чтобы кормить его необработанной строкой HTML. Однако я получаю сообщение об ошибке. Вот что я пытаюсь сделать:

<html>
<body>
  ...
  <div id="main">
    <div id="head">...</div>
    <div id="body">...</div>
    <div id="foot">...</div>
  </div>
  ...
  <script>
    var layout = new kendo.Layout($('#main').html());
    layout.showIn('#head', new kendo.View('<p>...</p>'));
  </script>
</body>
</html>

Элемент #main является частью HTML-страницы, поэтому я хочу вырезать его и превратить в макет Kendo для динамического преобразования страницы в одностраничное приложение. Это ошибка, которую я получаю:

Uncaught Error: Syntax error, unrecognized expression: <div id="head"></div>
    <div id="body"></div>
    <div id="foot"></div> 

Не уверен, почему, потому что он работает, если я вырезал и вставлял HTML в макет инициализации. У меня есть jsFiddle, созданный здесь: http://jsfiddle.net/bN754/

Теги:
single-page-application
kendo-ui

2 ответа

0
Лучший ответ

Хорошо, я обнаружил, что новые строки и пробелы в.html() разбивали его. Поэтому мне пришлось вычистить новые линии и пробелы, прежде чем загружать их в макет:

<html>
<body>
  ...
  <div id="main">
    <div id="head">...</div>
    <div id="body">...</div>
    <div id="foot">...</div>
  </div>
  ...
  <script>
    var html = $('#main').html().replace(/^\s+|\r\n|\n|\r|(>)\s+(<)|\s+$/gm, '$1$2');
    $('#main').empty();

    var layout = new kendo.Layout(html);
    layout.render("#main");
  </script>
</body>
</html>

http://jsfiddle.net/bN754/2/

0

Из документации Telerik я бы подумал, что это вызвано отсутствием инструкции рендеринга вашего объекта макета.

    <script>
        var layout = new kendo.Layout($('#main').html());
        layout.render($("#main"));
        layout.showIn('#head', new kendo.View('<p>...</p>'));
    </script>

Дайте мне знать, если это решит вашу проблему, иначе у меня будет другая гипотеза. :-)

  • 0
    У меня есть рендер ниже маршрутов. Что еще вы имели в виду?
  • 0
    @ Kad Не будет ли рендерить удаление HTML из DOM и чтение его?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню