Ember.js: `{{action (mut propertyName) "newPropertyValue"` versucht die falsche Eigenschaft zu aktualisieren

Erstellt am 11. März 2016  ·  4Kommentare  ·  Quelle: emberjs/ember.js

Wie in http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_get dokumentiert, sollte es möglich sein, den mut Helper innerhalb des action Helfers zum Aktualisieren zu verwenden eine Eigenschaft wie folgt:

<!-- factName is set to "height" and should be changed to "weight" -->
<button {{action (mut factName) "weight"}}>Show weight</button>

Anstatt factName aktualisieren, versucht Ember jedoch, eine Aktion aufzurufen, die nach dem aktuellen Wert von factName :

error Script error. (line 0)
ember.debug.js:44562 Uncaught Error: Nothing handled the action 'height'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.

Ich weiß nicht, ob dies ein Fehler ist oder ob der mut Helper nie so funktionieren sollte.

Testfall: http://emberjs.jsbin.com/radogusojex

Hilfreichster Kommentar

Zusätzlich zu der von @rwjblue vorgeschlagenen

<button {{action (action mut factName) "weight")}}>Show weight</button>

Ich habe Ihren JS Bin bearbeitet, um es zu demonstrieren: http://emberjs.jsbin.com/qavaki/1

Alle 4 Kommentare

Ich glaube nicht, dass die Syntax der Elementraumaktion dies zulässt, Sie müssen möglicherweise Schließaktionen für dieses Verhalten verwenden:

<button onclick={{action (mut factName) "weight"}}>Show weight</button>

Nun, in diesem Fall sollte die Dokumentation dies widerspiegeln.

Entschuldigung, dass ich vorher zu abrupt war, ich habe über die Implementierung gesprochen (nicht das, was wir eigentlich unterstützen wollen). Ich denke, dass spezielle Gehäuse (mut helper, wie es an anderer Stelle im System gemacht wird) völlig in Ordnung zu sein scheint.

Wir müssen etwas ganzheitlicher entscheiden, was wir als Schicksal des Elements Raumaktuons beabsichtigen...

Zusätzlich zu der von @rwjblue vorgeschlagenen

<button {{action (action mut factName) "weight")}}>Show weight</button>

Ich habe Ihren JS Bin bearbeitet, um es zu demonstrieren: http://emberjs.jsbin.com/qavaki/1

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen