2013-02-28 19 views
1

磁盤是我的集合對象。我需要停止抓取集合如何停止在主幹中獲取集合

customPoll: function(time){ 
      var set_time = 0; 
      if(time === undefined){ 
       set_time = 4000; 
      } 
      var route = Backbone.history.fragment.split('/'); 
      var self = this; 
      if(route[0] === "disks"){ 
       setTimeout(function() { 
        Disks.fetch({update:true,success: function(){ 
         self.customPoll(); 
        }, error: function(){ 
         self.customPoll(); 
        } 
        }); 
       }, set_time); //TODO Need to handle efficiently... 
      } 
     } 

我試圖如果某些條件存在其他明智我需要停下來調用這個取調用此取每4秒。

var route = Backbone.history.fragment.split('/'); 
      var smart = new Smart.model({ 
       "id" : route[1] 
      }); 
      var self = this; 
    smart.save(null,{ 
        success: function(model,event,response){ 
         model = Disks.get(route[1]).toJSON(); 
         $('#smart-confirm-dialog').modal('hide'); 
         self.showStatusMsg(1,"<b> S.M.A.R.T. Test : </b>S.M.A.R.T Test started succesfully"); 
         if(model.smart.progress === "100%"){ 
          self.clearAllTimeout(); 
          alert("please stop fetching....pleaseeee"); 
          // Stop polling here . then fetch information from smart.fetch api. 
          Smart.fetch({update: true}); //this is another api i need to call this api now. 
         }else{ 
          self.customPoll(); 
         } 
}); 

但它似乎不工作...它繼續抓取集合..我怎樣才能停止這個磁盤集合提取。

回答

1

我的答案也許很有趣,我想添加評論,但我不能。您可以將新字段添加到您的模型和

customPoll: function(time){ 
    var disks = this.model.toJSON(); 
    if(disks.yourField){ 
     // here your code 
    } 
} 

但保存模型前需要做delete disks.yourField;