2015-02-28 3 views
0

Я изучаю входы и выходы рамки Lift, желая сделать простую веб-страницу. Я хотел видеть, как легко было применить шаблон к странице, которую я создавал, и решил просто применить стандартную версию. К моему удивлению, все, что было на странице, получило дублирование без видимых причин. Содержание страницы примерно на основе кода из этой беседы: ScalaDC (Scala + Lift + Angular) is MagicПодъемник дублирует мой контент

Вот что случилось с моей страницы:

Duplicate stuff!

И вот мой код в вопросе:

index.html:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>Which character is the best?</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> 
</head> 
<body class="container"> 
    <div data-lift="surround?with=default&at=content"> 
     <h1>Which Character is the best?</h1> 
     <button data-lift="CharacterSnippet.renderButton">Ask the server </button> 
     <div id="char-div" style="display:none;" class="panel panel-default"> 
      <div class="panel-heading"> 
       <p class="lead" >If only the server knew the answer...</p> 
      </div> 
      <div class="panel-body"> 
       <img width="512"/> 
      </div> 
     </div> 
    </div> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js" ></script> 
</body> 
</html> 

default.ht мл: (в значительной степени неизменным с одной Lift поставляется с)

<html> 
<head> 
    <meta charset="UTF-8"> 
    <title data-lift="Menu.title">App: </title> 
    <style data-lift="CSS.blueprint"></style> 
    <style data-lift="CSS.fancyType"></style> 
    <script id="jquery" src="/classpath/jquery.js" type="text/javascript"></script> 
    <script id="json" src="/classpath/json.js" type="text/javascript"></script> 
    <style type="text/css"> 
    /* <![CDATA[ */ 
    .edit_error_class { 
     display: block; 
     color: red; 
    } 

    .sidebar ul { 
    margin:0; 
    padding:0; 
    border-bottom:1px solid #ccc; 
    } 

    .sidebar ul li { 
    margin:0; 
    padding:0; 
    list-style:none; 
    border:1px solid #ccc; 
    border-bottom:none; 
    } 

    .sidebar ul li a { 
    display:block; 
    padding:3px; 
    text-indent:30px; 
    text-decoration:none; 
    } 

    .sidebar ul li span { 
    display:block; 
    padding:3px; 
    text-indent:30px; 
    text-decoration:none; 
    } 

    .sidebar ul li a:hover { 
    background-color: #eee; 
    } 

    .spinner { 
    display:none; 
    margin-bottom: 0px; 
    margin-left: 5px; 
    } 

    /* ]]> */ 
</style> 
</head> 
<body> 
    <div class="container"> 
    <div class="column span-12 last" style="text-align: right"> 
     <h1 class="alt">Learning Lift<img class="spinner" alt="" id="ajax-loader" src="/images/ajax-loader.gif"></h1> 
    </div> 

    <hr> 

    <div class="column span-6 colborder sidebar"> 
     <hr class="space" > 

     <span data-lift="Menu.builder"></span> 

     <div data-lift="Msgs?showAll=true"></div> 
     <hr class="space"> 
    </div> 

    <div class="column span-16 last"> 
     <div id="content">The main content will get bound here</div> 
    </div> 

    <hr> 

    <div class="column span-23 last" style="text-align: center"> 
     <h4 class="alt"> 
     <a href="http://www.liftweb.net"><i>Lift</i></a> 
     is Copyright 2007-2014 WorldWide Conferencing, LLC. 
     Distributed under an Apache 2.0 License.</h4> 
     </div> 
    </div> 
    </body> 
    </html> 

Удаление data-lift="surround?with=default&at=content" с первого div в body делает штраф загрузки страницы, которая является странным, так как шаблон работал отлично с кодом по умолчанию, который был написан в index.html, когда я начал проект.

Итак, что я могу сделать, чтобы исправить это дублирование?

ответ

0

Парсер HTML5, который Lift использует причины, иногда, когда дело касается недопустимого содержимого. В этом случае, я думаю, проблема может заключаться в том, как вы вызываете фрагмент окружающего звучания. Когда у вас есть несколько параметров для перехода к фрагменту, используйте ; вместо &, чтобы разграничить их. Так что попробуйте:

data-lift="surround?with=default;at=content" 

неэкранированный & используется как ожидается, чтобы начать характеристику в HTML5.

+0

Это странно, потому что официальная документация использует & между значениями по умолчанию и –

+0

. Неужели это исправить? Это может быть что-то еще в разметке, но это первое, что привлекло мое внимание. –

+0

Это ничего не меняет. То, что я нашел, работает, чтобы удалить все вокруг div, которые должны быть окружены, потому что, глядя на сгенерированный код, вы можете увидеть его в основном просто принудительно 'default' между' body' и 'div' –

Смежные вопросы