我决定通过制作一个网络应用程序来尝试学习backbone.js。这是我第一次在javascript中做了大量工作,所以问题的答案可能就在我面前。
我在github上有一个网络应用,以及一个不起作用的running version。 javascript控制台只是说当我认为它不应该是某些东西是未定义的。这是chrome为app.js第30行提供的错误:
Uncaught TypeError: Cannot read property 'el' of undefined
我有点引用backbone-fundamentals示例模块化待办事项应用程序,似乎没有类似事情的任何问题。
如果有人能够指出我做错了什么,我会非常感激!
提前致谢!
答案 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));