KnockoutJS和$.ajax-firebug不会在成功回调内的断点上停止



我最近一直在玩Knockout,我正试图用订阅ko计算的可观察对象来替换$(").change处理程序。

我遇到的问题是,当我在带有knockout的计算可观察对象中进行ajax调用时,firebug不会破坏调试器关键字或成功回调中的任何断点,但当ajax在$().change处理程序中触发时,它可以正常工作。

虽然代码似乎可以工作,但我很想看看是否有人知道它为什么不在断点处停止?

这是原始代码,它在成功回调时中断良好:

$("#textarea").change(function() {
                      $.ajax({ 
                            //code elided
                           success : function(response){
                                     debugger
                                     alert(response);
                              };
                       });
                 });

这是淘汰赛中的代码。

function ViewModel(){
      var self = this;
      self.textValue = ko.observable();
      self.throttledValue = ko.computed(this.textValue)
                        .extend({ throttle: 400 });

      this.throttledValue.subscribe(function (val) {
          if (val !== ''){
              $.ajax({ 
                   //code elided
                   success : function(response){
                                 debugger
                                 alert(response);
                              };
                       });
           }
      });
};

我希望以上能说明我在做什么。

本质上,两者都会显示带有ajax调用响应的警报,因此我们知道正在调用success函数,但只有第一个函数会在"调试器"上停止。

有人能揭露这种行为吗?这与它在订阅可观察到的节流值有关吗?

同样,代码仍然有效,只是想看看是否有人知道为什么没有达到断点。

我想您进行跨域调用时,它们会无声地失败。我创建了一个使用ajax调用同一域的示例,一切都很好。在Chrome、IE、FF 中验证

试试看http://jsfiddle.net/Hju2v/2/

最新更新