Я пытаюсь использовать шаблоны JST для проекта с использованием Backbone. Кажется, все работает нормально, но я получаю синтаксическую ошибку, с которой я не могу окутать голову.Grunt не удается скомпилировать JST
Это то, что консольные выходы:
Running "jst:compile" (jst) task
>> SyntaxError: Unexpected token =
Warning: JST failed to compile. Use --force to continue.
Aborted due to warnings.
Бег с --verbose
Verifying property jst.compile exists in config...OK
Files: templates/ideas/idea.jst -> scripts/templates/ideas/idea.js
Files: templates/ideas/idea_index.jst -> scripts/templates/ideas/idea_index.js
Options: namespace="JST", templateSettings={"interpolate":{}}, processContent=undefined, separator="\n\n", prettify, processName=undefined
Reading templates/ideas/idea.jst...OK
>> SyntaxError: Unexpected token =
Warning: JST failed to compile. Use --force to continue.
Aborted due to warnings.
Это файл, он пытается скомпилировать:
<!-- IDEA START -->
<div class="ideadata" data-id="<%= id %>" data-date="<%= this.date %>" data-votes="<%= this.votes %>">
<!-- Id -->
<span class="id">#<%= this.id %></span>
<!-- Idea -->
<p><%= this.content %></p>
<!-- Voting and social options -->
<div class="social">
<!-- VOTER -->
<!-- HTML -->
<!-- END -->
<a href="#" onclick="window.open(
'https://twitter.com/intent/tweet?original_referer=' + encodeURIComponent(location.href) + '&screen_name=roskildefestival&text=<%= this.content %>&tw_p=tweetbutton',
'twitter-share-dialog',
'width=550,height=390');
return false;"><img src="http://cdn3.iconfinder.com/data/icons/picons-social/57/03-twitter-20.png" /></a>
<a href="#" onclick="window.open(
'https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(location.href),
'facebook-share-dialog',
'width=626,height=436');
return false;"><img src="http://cdn3.iconfinder.com/data/icons/wpzoom-developer-icon-set/500/01-20.png" /></a>
</div>
</div>
<!-- IDEA END -->
Я попытался заменить <% = на <%, и это кажется успешным, однако этого я не хочу достичь.
Я делаю что-то неправильно здесь или это неправильный способ написать шаблон JST?
Раньше я использовал файлы * .jst.eco в качестве файлов шаблонов, когда я работал на Rails, но поскольку это проект PHP, мне нужно было выяснить другой способ сделать что-то, и поэтому также не уверены, что это лучший способ сделать это или нет.
1ST EDIT:
Таким образом, после получения какой-то обратной связи я попытался разбить его на самый простой из простой с этим кодом:
<% if(true){ %>
<div>Hey</div>
<% } %>
Что преуспевает в составлении и дает мне это :
this["JST"] = this["JST"] || {};
this["JST"]["ideas/idea"] = function(obj) {obj || (obj = {});var __t, __p = '', __e = _.escape, __j = Array.prototype.join;function print() { __p += __j.call(arguments, '') }with (obj) { if(true){ ;__p += '\n <div>Hey</div>\n'; } ;}return __p};
И это, который не может скомпилировать:
<div><%= this.id; %></div>
Попробуйте 'черновую ПДжС: компилировать --stack', как это должно дать вам трассировки стека, о том, где ошибка, происходящих из , –
Пытался запустить его с помощью --verbose, ничего не случилось с --stack. Я обновил вопрос, чтобы он соответствовал тому, что он сделал. – dnlmzw
Я не понимаю, почему это было отклонено. Голосование назад, я думаю, что это прекрасный вопрос. – crempp