2014-10-07 5 views
-2

Мы работаем над угловым приложением для работы с подсветкой на основе js. Таким образом, угловые js имеют «директивы», которые возвращают часть HTML-кода из html-файла и вводят в main.htmlПодсветка с угловым js

Что мы наблюдаем здесь, когда есть какие-либо пробелы/комментарии и т. Д. Вне элементов HTML-тега, он бросает ошибка как «https://docs.angularjs.org/error/ $ compile/tplrt» Это известная проблема и задокументирована в угловых документах.

Но странная часть, мы начали разработку в WL 6.1 и никогда не сталкивались с этой проблемой. Как только мы перешли на WL 6.2, эта ошибка появилась. Одна из вещей, которая пришла мне в голову, - это jquery lib (конфликт) по умолчанию, связанный с подсветкой. Но я попытался заменить старые версии jQuery (до 1.9.1), и это не сработало. Любые мысли/предложения о том, почему это может произойти в 6.2?

PS: Эта проблема видна только в браузере, а не в эмуляторе/устройстве.

index.html

<body style="display: none;"> 
<!--application UI goes here--> 
<shell></shell> 
</body> 
<script src="js/lib/angular.js"></script> 
<script src="js/shell.js"></script> 

main.js

// Common initialization code goes here 
angular.bootstrap(document, ['shell']); 

shell.html

<div id="topZone" app-view-segment="0"></div>[Insert \n here] 

shell.js

angular.module('shell',[]); 

angular.module('shell').directive('shell', [ 

function() { 
    console.log('shell Directive'); 
    return { 
     restrict: 'EA', 
     replace: true, 
     templateUrl: 'views/shell.html' 
    }; 
}]); 
+0

У вас есть что-то более существенное для показа? Предоставьте проект воспроизведения или шаги для воспроизведения. –

+0

Привет, Идан, отредактировал мой вопрос. –

ответ

1

Я не знаю, почему он работал в 6.1, он не должен был :)
Вы должны использовать последнюю версию 6.2, так как в предварительном просмотре были некоторые ошибки.
In the angularjs site это четко указано, что вам нужно, чтобы все завернутые в одном HTML элемента:

Когда директива объявляется с шаблоном (или templateUrl) и режим замены на шаблон должен иметь ровно один корень элемент. Для этого текст свойства шаблона или содержимого, на который ссылается шаблон , должен содержаться в одном элементе html. Для примера , <p>blah <em>blah</em> blah</p> вместо простого blah <em>blah</em> blah. В противном случае операция замены будет приведет к замене одного элемента (директивы) на нескольких элементов или узлов, который не поддерживается и обычно не используется .

+0

Мы перенесли последнюю версию WL. Тем не менее проблема сохраняется. Обращаясь к shell.html здесь, если я удалю [\ n или whitespaces] после тега div, он работает. –

+0

\ n или пробел - это новый текстовый узел в DOM, так что написанное выше все еще действует. –

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