2013-02-12 58 views
0

我对ember.js非常陌生,正在打墙。我使用ember.js 1.0.0-PRE4帮助程序未在应用程序模板中正确定义?

我app.js具有以下设置:

window.App = Ember.Application.create(); 

App.Router.map(function() { 
    this.route("dashboard", {path: "/"}); 
}); 

App.DashboardRoute = Ember.Route.extend({ 
}) 

我试图做这样的事情的应用程序模板(Ember.TEMPLATES['application']

{{#linkTo "dashboard"}}Dashboard{{/linkTo}} 

它给我Uncaught Error: Could not find property 'linkTo'。我试过{{view}}以及其他佣工,但都给了我一样找不到属性错误。

的jsfiddle:http://jsfiddle.net/gBf42/

+0

你的语法是完全正确,因此不是导致该错误。别的东西正在干扰你的代码。你认为你可以提供一个jsfiddle的再现错误? – Deif 2013-02-12 13:07:35

+0

@Deif那么这样的事? http://jsfiddle.net/gBf42/ – TheOnly92 2013-02-12 13:12:35

回答

3

啊哈,我发现这个问题!当您使用Handlebars.compile时,它使用手柄脚本而不是Ember脚本。 Ember具有自己的把手对象,该对象使用额外的模板来扩展原始Handlebars对象。一个这样的模板是{{#linkTo ...}}模板。

所以修复,所有你需要做的就是利用Ember.Handlebars代替:

Ember.TEMPLATES["application"] = Ember.Handlebars.compile("{{#linkTo 'dashboard'}}Dashboard{{/linkTo}}") 
+0

啊,非常感谢。 – TheOnly92 2013-02-12 13:52:15

+0

代码去哪里?你不必为每个环节都做这件事吗? – Leahcim 2013-09-07 17:51:35

+0

取决于你想要做什么。以上代码用于手动编译模板。通常你会将你的模板作为纯HTML格式的脚本标记(例如[here](http://jsbin.com/ifilet/3/edit))。 – Deif 2013-09-08 11:57:06