Ember:处理路径时出错:未定义

时间:2014-11-28 21:41:34

标签: javascript ember.js routes

没有看到我缺少的东西导致'帖子'模板在浏览器中呈现为空白。我的其他模板正常渲染。

我收到了错误:

Error while processing route: posts posts is not defined ReferenceError: posts is not defined

我的路线档案:

Blogger.PostsRoute = Ember.Route.extend({
  model: function() {
    return posts;
  }
});

查看:

  <ul>
    {{#each}}
      <li>{{title}}</li>
    {{/each}}
  </ul>

使用模板加载器中的帖子,路由器和“帖子”调用store.js文件的索引:

  <script src="blogger.js"></script>
  <script src="router.js"></script>
  <script scr="store.js"></script>

  <script src="controllers/about.js"></script>
  <script src="controllers/contact.js"></script>

  <script src="routes/posts.js"></script>

  <script>
    EmberHandlebarsLoader.loadTemplates([ 
      'posts', 'about', 'contact', 'phone', 'email', 'application'
    ]);
</script>

在我的store.js文件中:

var posts = [
  {
    id: '1',
    title: "title text",
    body: "body text"
  },
  {
    id: '2',
    title: 'title text two',
    body: "lorem ipsum"
  }
];

JSfiddle:http://jsfiddle.net/t6ndtbLq/2/

2 个答案:

答案 0 :(得分:1)

只是来自此示例中的代码,

中的变量posts
model: function() {
  return posts;
}
永远不会定义

。这就是浏览器告诉您ReferenceError: posts is not defined

的原因

答案 1 :(得分:1)

由于未定义posts的错误,并且在store.js文件中明确指出var posts = ...,因此首先要检查store.js是否正确加载。您的脚本标记为<script scr="store.js"></script> - 如果您将拼写错误从scr...修改为src,则该标记应有效。