Okay, nach ein paar weiteren Stunden mit dem Chaos zu kämpfen, das dijit.InlineEditBox
ist, denke ich, ich habe die Lösung für das verbleibende Problem (# 2).
EDIT: Meine erste Lösung zu # 2 ist immer noch fehlerhaft; Die Implementierung unter http://jsfiddle.net/kfranqueiro/Vuet8/10/ wird niemals den tatsächlichen internen Wert zurückgeben, wenn get ('value') aufgerufen wird.
EDIT # 2: Ich habe die Lösung überarbeitet, so dass der Wert immer noch den wahren (versteckten) Wert behält und displayvalue separat bleibt. Prüfen Sie, ob das funktioniert besser:
http://jsfiddle.net/kfranqueiro/Vuet8/13/
Erstens, für diejenigen rekapitulieren, die nicht im IRC waren:
Ausgabe # 1 wurde aufgrund geschieht nicht richtig als Top-Level-Eigenschaft auf Wert ist der InlineEditBox selbst; es hat es nicht richtig aus dem eingepackten Widget übernommen.
Problem # 3 geschah aufgrund einiger ziemlich verrückter Logik, die InlineEditBox ausführt, um zu versuchen, Stile aufzulösen. Es stellt sich jedoch heraus, dass InlineEditBox die Einstellung der Breite besonders einfach macht, indem es auch als numerisches Attribut der obersten Ebene verfügbar gemacht wird. (Obwohl IINM können Sie auch einen Prozentsatz als Zeichenfolge angeben, z. B. "50%")
Nun, Ausgabe # 2 ... das war der Mörder. Das Problem ist, während InlineEditBox scheint einige Logik Widgets mit einem displayedValue
Attribut zu haben, ist diese Logik manchmal falsch (es erwartet eine displayedValue
Eigenschaft auf dem Widget tatsächlich vorhanden ist, die nicht unbedingt der Fall ist), und andere Zeiten fehlen ganz (wenn die InlineEditBox initialisiert wird). Ich habe so gut wie möglich in meiner eigenen dojo.declare
d Erweiterungen zu InlineEditBox und dem internen Widget, das es verwendet, _InlineEditor gearbeitet - da es im Allgemeinen eine gute Idee ist, die ursprüngliche Distribution unberührt zu lassen.
Es ist nicht schön (noch ist der zugrunde liegende Code, den ich durchforstet habe, um zu verstehen und damit zu kommen), aber es scheint seine Arbeit zu machen.
Aber Mann, das war ziemlich interessant. Und möglicherweise auch für meine Interessen relevant, da wir dieses Widget auch in unseren UIs verwendet haben und es in Zukunft häufiger verwenden werden.
Lassen Sie mich wissen, wenn etwas nach hinten losgeht.
(über IRC) Probleme 1 und 3 sind gelöst in http://jsfiddle.net/kfranqueiro/Vuet8/8/ aber 2 ist immer noch hervorragend, und hat mich im Moment ratlos. –