[英]Issue in caching using coffeescript
我有这个剧本
class Raffler.Views.EntriesIndex extends Backbone.View
div: $('#input')
initialize: ->
console.log @div.val()
如您所见,这是骨干网的视图。
我想将$('#div')
缓存到一个变量中并调用它。 参见console.log @div.val()
。
但这似乎不起作用..
使用普通的javascript,我会写这样的东西:
var ToDoView = Backbone.View.extend({
div : $('#input'),
initialize: function(){
console.log(this.div.val());
}
})
这很好。 我的错在哪里?
Coffeescript类的工作方式和Backbone的扩展机制的工作方式有所不同,这可能是您遇到的问题。 但是我想这不是这里的问题。 运行此代码的确切时间和位置可能也会有所不同。 如果将javascript代码放在执行coffeescript代码的位置,那么可以正常工作吗? 并在相关的说明,什么exacly的问题,即你得到什么错误讯息? @div是否已初始化?
您的代码运行时可能未加载$("#input")
元素。
在类中缓存值的问题是,该类很可能是在jQuery.ready回调之外定义的(在DOM完成加载之前),因此目前您的类将$("#input")
为@div
jQuery实际上找不到该元素。
您可以在initialize
函数中设置@div
,因为很有可能在DOM加载后调用@div
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.