小编Tom*_*ess的帖子

在事件/回调驱动的JavaScript应用程序中管理"this"

我想知道在jQuery和Backbone.js等框架中经常使用的回调中处理"this"引用的预期方法是什么

这是我遇到问题的简化示例,使用Backbone.js和jQuery UI,但它并不是特定于这些框架.

var MyView = Backbone.View.extend({
   render: function() {
      $('#mybutton').click(function() {
         // My code in here
      });
   },

   callMe: function() {
      alert('Rawr!');
   }
});
Run Code Online (Sandbox Code Playgroud)

现在,我如何从点击处理程序中引用MyView实例?例如,我如何从点击处理程序中调用"callMe"?在处理程序之外我只是调用this.callMe(); 但是"this"会被click处理程序中的DOM元素替换.解决这个问题的最佳方法是什么?

javascript jquery jquery-ui backbone.js

1
推荐指数
1
解决办法
709
查看次数

在rails中查询缓存仍然会对DB进行调用

我可能在这里遗漏了一些非常简单的东西,但却无法理解.

我正在尝试缓存一个简单的活动记录查询,但每次触摸缓存时,它都会再次对DB运行查询.

控制器代码:

products = Rails.cache.read("search_results")
if products
    render :text => products[0].id
else
    products = Product.where('name LIKE ?", 'product_name?')
    Rails.cache.write("search_results", products)
end
Run Code Online (Sandbox Code Playgroud)

我可以看到,在我的第二个调用中,我到达if块而不是其他,但是每当我尝试触摸产品(比如渲染它)时,我也会看到对DB的激活记录调用.

我错过了什么?

ruby activerecord caching ruby-on-rails

0
推荐指数
1
解决办法
767
查看次数