我最近决定尝试Ember.js。
我设置了一个小应用程序,但我无法工作。
我有一个app.html文件
<!doctype>
<html>
<head>
...
</head>
<body>
<script type="text/x-handlebars">
...
</script>
</body>
</html>
现在,当然,这不会呈现任何东西。我包括handlebars.js,ember.js和app.js,现在一切都正确呈现。
问题在于,当我尝试使用花括号添加内容时,输出为空白。例如,如果我在我的JS文件中设置了一些变量并希望在我的应用程序中显示它,例如<h1>{{title}}</h1>
,我会得到<h1></h1>
。当我尝试放置{{input value="Username"}}
时,不会显示任何内容。
我没有收到任何错误消息,除非我使用结束标记。例如,这个
{{#link-to "http://google.ca"}}Link{{/link-to}}
将使我的整个网页显示
line 117: interleaved closing tag: link-to
我不知道出了什么问题。即使使用Google搜索错误消息也无济于事。
任何提示?ç
更新
此代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ember Starter Kit</title>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/normalize/2.1.0/normalize.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script>
<script src="http://builds.emberjs.com/tags/v1.8.0/ember.js"></script>
<script type="text/javascript">
App = Ember.Application.create();
App.Router.map(function() {
// put your routes here
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
}
});
</script>
</head>
<body>
<script type="text/x-handlebars">
<h2>Welcome to Ember.js</h2>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<a href="http://google.ca">Link</a>
<ul>
{{#each item in model}}
<li>{{item}}</li>
{{/each}}
</ul>
</script>
</body>
</html>
使用以下错误消息呈现空白页:
line 36: interleaved closing tag: each
我不确定这是否正常。
答案 0 :(得分:0)
link-to仅适用于ember路由。 (http://emberjs.com/guides/templates/links/)
在你的情况下,我只是直接在模板中为链接编写html。
这是一个带有google.ca链接的小样本ember.js应用程序,我觉得你的html可能无法通过插座和模板正确设置:
答案 1 :(得分:0)
我发现了问题,这真的很愚蠢。
我的HTML文件由一个框架提供,该框架使用Mustache作为其模板引擎(服务器端),因此在将输出发送到broswer之前它会呈现所有{{something}}
标记。
:/