繁体   English   中英

使用coffeescript缓存问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM