Backbone.js模型在视图中没有定义?

时间:2012-02-18 14:25:21

标签: backbone.js requirejs

我决定通过制作一个网络应用程序来尝试学习backbone.js。这是我第一次在javascript中做了大量工作,所以问题的答案可能就在我面前。

我在github上有一个网络应用,以及一个不起作用的running version。 javascript控制台只是说当我认为它不应该是某些东西是未定义的。这是chrome为app.js第30行提供的错误:

Uncaught TypeError: Cannot read property 'el' of undefined

我有点引用backbone-fundamentals示例模块化待办事项应用程序,似乎没有类似事情的任何问题。

如果有人能够指出我做错了什么,我会非常感激!

提前致谢!

2 个答案:

答案 0 :(得分:8)

你的机器视图渲染方法缺少return this,默认情况下所有方法都返回undefined - 这就是链接不起作用的原因

编辑:还有一个小提示:

jQuery,Underscore和Backbone全局注册 - 并且由于您不必每次都将它们定义为依赖项 - 如果您在主脚本中需要它们就足够了,之后您可以从全局范围访问它们像往常一样

答案 1 :(得分:0)

就我而言,我在没有this关键字的情况下返回return。由于我使用的是javascript而不是coffeescript,因此我失败了。因此,如果您使用javascript,请在​​return this;函数的最后一行使用this而不是render()

使用this.collection.on('reset', this.render(), this)时我也遇到了问题。我不得不使用this.collection.on('reset', this.render.bind(this));