您好我正在尝试在playframework 2中使用小胡子模板。所以我的index.scala.html看起来像
@import com.feth.play.module.pa.views.html._
<!doctype html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<title>Test</title>
<script data-main="@routes.Assets.at("javascripts/main.js")" src="@routes.Assets.at("javascripts/require.js")"></script>
<body>
<header>
</header>
</body>
</html>
我通过骨干视图插入标题。
define(['use!jquery', 'use!underscore', 'use!backbone', 'text!templates/View.HeaderView.html',
'bootstrap', 'bootstrap-dropdown'],
function($, _, Backbone,headerViewTemplate) {
return Backbone.View.extend({
el: $('header'),
events: {
},
initialize: function(options) {
console.log('headerview init');
this.template = headerViewTemplate;
}
}
View.HeaderView.Html定义如下
<div id="auth-status">
@currentAuth() { auth =>
@if(auth != null) {
<div class="btn-group pull-right" id="auth-loggedin" style="display:auto">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user" id="auth-displayname"></i> Welcome
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Settings</a></li>
<li class="divider"></li>
<li><a href="@com.feth.play.module.pa.controllers.routes.Authenticate.logout" id="auth-logoutlink">Sign Out</a></li>
</ul>
</div>
}
@if(auth == null) {
@forProviders() { p =>
<div class="btn pull-right" id="auth-loggedout">
<a href="@p.getUrl()" id="auth-loginlink">
<i class="icon-user"></i> Login With Facebook</a>
</div>
}
}
}
</div>
所以我遇到的问题是scala模板显示为常规文本而不是scala代码。如果我将代码放在index.scala.html中就可以了。
帮助!!!
答案 0 :(得分:1)
您的View.HeaderView.Html
文件未被检测为scala代码且未执行/编译。
views
包中。 .scala.html
扩展名。否则编译器将找不到它。