不在ember-1.6.1中使用默认视图呈现索引

时间:2014-07-16 19:50:22

标签: templates view ember.js handlebars.js

AS-萨拉姆-WA-alicum

每个人,

我有一个带有

的index.html
 <script type="text/x-handlebars" data-template-name="application">
        <div id="tabcontent" class="post" contenteditable="true">
            {{outlet}}
        </div>
    </script>  
带有

的applicationView.js
App.applicationView = Ember.View.extend({
template:Ember.Handlebars.compile('welcomeTemplate.hbs')
,templateName:'application'
});  

在js / templates / welcomeTemplate.hbs中

 <div><p>Welcome</p></div> 

在app.js我有

App.Router.map(function() {
  // put your routes here
});

App.IndexRoute = Ember.Route.extend({ });

在控制台日志中我得到了

DEBUG: -------------------------------
DEBUG: Ember      : 1.6.1
DEBUG: Handlebars : 1.1.2
DEBUG: jQuery     : 1.10.2
DEBUG: -------------------------------
generated -> route:application Object { fullName="route:application"}
generated -> route:index Object { fullName="route:index"}
generated -> controller:application Object { fullName="controller:application"}
Rendering application with default view <(subclass of Ember.View):ember211> Object {
     fullName ="view:application"}
generated -> controller:index Object { fullName="controller:index"}
**Could not find "index" template or view. Nothing will be rendered Object {
     fullName="template:index"}**
log:
Transitioned into 'index'   

请告诉我这里发生了什么,为什么我在/index.html浏览器中看不到“欢迎”?我如何在/index.html浏览器中看到“欢迎”?

非常感谢

致以最诚挚的问候 Nadvi。

1 个答案:

答案 0 :(得分:1)

同时拥有模板和templateName是没有意义的。另外,应用程序应该是大写的。

App.ApplicationView = Ember.View.extend({
  template:Ember.Handlebars.compile('Hello {{name}}<br/>Name: {{input value=name}}')
});

Ember不会为你加载文件,因此声明一个hbs名称不会做任何事情,它只会把它想象成你想要在页面中显示的普通字符串。

http://emberjs.jsbin.com/joyiqute/1/edit