1

每当我这样做:

$.ajax({
  //my settings
}).done(function(data){
  // Publish or store data
});

它工作得很好!但是,我正在尝试应用观察者模式,因为我必须这样做,但是当我这样做时,请使用以下代码:

$.ajax({
  // my settings
}).done(function(data){
  $(document).trigger('ALLREADY',data);
});

// Some other part of the code
$(document).on('ALLREADY',function(e,data){
  console.log(data); // WHY?!
});

响应(数据)只存储第一个值,而不是整个数组,就像第一个示例一样,我做了什么来破坏功能?

PS:请注意,即使它只返回一个所谓的大数组的第一个值,即使我尝试使用它,它也不会让我,但是,我可以记录它。

4

1 回答 1

1

由于data是一个数组,因此每个单独的片段都作为事件回调中的单独参数发送。这很奇怪,因为如果data是一个对象,情况就不是这样了(你可以像 一样使用它data)。

相反,只需使用data = arguments.slice(1)

于 2013-02-07T05:50:29.640 回答