2016-05-13 5 views
0

Ich versuche, Entprellen Arbeit an unserer App zu bekommen. Dies funktioniert auf einer lokalen Test-App, und auf dem kleinen Beispiel, aber nicht an dem, an dem ich gerade arbeite. https://ember-twiddle.com/6470734cd3111fd3049f3e900aa676c4?numColumns=2&openFiles=controllers.application.js%2Ctemplates.application.hbsEmber run.debounce funktioniert nicht

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    appName: "Debounce", 
    it: false, 
    actions: { 
     changeIt() { 
      this.toggleProperty('it'); 
     } 
    }, 
    logIt() { 
    console.log('logging it'); 
    console.log(this.get('it')); 
    }, 
    observeIt: Ember.observer('it', function() { 
    console.log('will debounce'); 
    Ember.run.debounce(this, 'logIt', 5000, false); 
    }), 

}); 

Das Problem ist, dass ‚Logit‘ immer sofort ausgelöst wird, und wird ohne Verzögerung oder Drosselung halten Brennen. Da es in einer App funktioniert und nicht in einer anderen, ist es möglich, dass ein Plugin es durcheinander bringt? Ich bin ahnungslos.

Mit Ember Version 2.4.3

+0

Ist dies der Code, der auf Ihre App nicht funktioniert? Wenn ja, welche Version von Ember benutzt du? – Kingpin2k

+0

Vielleicht versuchen, den 'unmittelbaren' Parameter zu spezifizieren? 'Ember.run.debounce (this, 'logIt', 5000, false);' Auch welche ember-Version hat diese App? – Lux

+0

Angegeben sofort als falsch, funktioniert immer noch nicht wie erwartet. – Xeridea

Antwort

0
Ember.run.debounce(this, 'logIt', 5000, false); 

zu

Ember.run.debounce(this, this.logIt, 5000, false); 
+0

Wie behebt dies das Problem? –

+0

@torazaburo - 'logIt' ist ein String, während this.logIt ein Ember-Objekt ist. –