2012-04-05 2 views
0

In meiner App, die Emberjs verwendet, wird jede Aktion dreimal mit einem einzigen Klick ausgelöst.Emberjs - Aktionen werden dreimal mit einem einzigen Klick ausgelöst

Zum Beispiel mit der folgenden Vorlage und Aussicht:

Vorlage:

<button {{action "removeFoo"}}>remove</button> 

Ansicht mit Klick-Handler:

listsView = Ember.View.create({ 
    templateName: 'lists', 

    removeFoo: function(event) { 
    event.preventDefault(); 
    console.log(new Date().valueOf()); 
    } 
}) 

ich die folgenden drei Ausgaben in der Konsole:

1333634360209 
1333634360215 
1333634360217 

Weiß jemand, was das verursacht oder was ist der beste Ansatz, um das Problem zu beheben?

Antwort

2

Das eigentliche Problem war, dass der Ember App Teil einer Rails-Anwendung war die bereits apps zwei andere Ember hatte. Diese Ember-Apps hatten keine rootElement angegeben. Das Hinzufügen eines rootElement für jede Ember-App behob das Problem.

1

Ich bin nicht sicher, warum es mehrmals aufgerufen wird, aber überschreiben Sie absichtlich ? Wenn dies der Fall werden Sie wahrscheinlich this._super() so nennen wollen, dass es das Element usw. zerstört ...

Hier ist die Definition der es in der Quelle: https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L770

Wenn das nicht Ihre Absicht war, möchten Sie vielleicht um deine Aktion etwas anderes zu nennen und zu sehen, ob das Problem gelöst wird.

+0

Sorry, meine Aktionen sind eigentlich anders benannt. Ich habe das Beispiel geändert. Danke für den Tipp. –

+0

Ah kein Problem, können Sie es bei jsfiddle.net replizieren? Nach @pangratz scheint es mir im Moment gut zu gehen. – rlivsey

Verwandte Themen