Ich mache eine Webseite, die Sie den Text bearbeiten können und nachdem Sie für 1 Sekunde aufhören zu tippen wird automatisch gespeichert, was Sie eingegeben haben.
Momentan arbeite ich nur die $ Timeout Details aus. Ich habe es funktioniert, wenn ich die update
Methode ohne params nennen, aber wenn ich es mit params nennen, erhalte ich die Fehlermeldung:
Error: fn is not a function $TimeoutProvider/this.$get</timeout/timeoutId<@http://localhost:63342/express_example/bower_components/angular/angular.js:14014 [email protected]://localhost:63342/express_example/bower_components/angular/angular.js:4300 Browser/self.defer/timeoutId<@http://localhost:63342/express_example/bower_components/angular/angular.js:4601
Warum bin ich diesen Fehler, wenn dabei:
timeout = $timeout(update(element, content), 1000);
aber nicht, wenn ich tun:
timeout = $timeout(update, 1000);
Offensichtlich muss ich die params in die Update-Methode übergeben, weil ich muss wissen, was zu aktualisieren.
debounceUpdate($(this), data.content);
var debounceUpdate = function(element, content) {
console.log('in debouce');
if (timeout) {
$timeout.cancel(timeout);
}
timeout = $timeout(update(element, content), 1000);
};
// Update an existing section
var update = function(element, content) {
console.log('in update');
console.log('section_id to update is '+element.data('sectionId'));
console.log(content);
}
* die params in die Update-Methode übergeben * - http://stackoverflow.com/questions/1190642/how-can-i-pass-a- Parameter-to-a-settimeout-callback –