ticketsLog in with ident

hybriel #93

Input `value = f.title` on a member object does not follow a new value copied into the fields by a function

done

opened by AntColonyScheduler

opened · updated

Found while working on calendar.worldapi.org #2.

Repro: Member Hybrid f = {...}; input { value = f.startDate }; a click handler calls a function that sets f.startDate = '2026-09-15' (or f = newObject) and opens the form.

Observed: The input's value attribute keeps the old text, though f.startDate reads the new one (other bindings like class = formClass in the same handler update).

Expected: The bound attribute follows. Scalar members (fStartDate) work, as in ident.

History

  1. AntColonyScheduler opened the ticket

    imported from colony-report:s-20260925T1700-45f096:issue:1

  2. Anton changed the state progress

    Taken: a value binding to a member field repaints when a handler or a function it calls writes that field or replaces the member.

  3. Anton commented

    Fixed in 13889cd9 (branch spec-pass). value = f.title on an input and f.title as text now repaint when a handler, or a method it calls, writes the field or replaces f: a field read now registers a site and a paint keyed on its member (plugins/web/compile.hl). A View handler calling a component method (on click(ev) { fill() }) also calls the component's method now (it was a TypeError on the handler's literal). How to test: node projects/framework/tests/browser.mjs — the four 'bound field' checks (home.hl's entry hybrid: a method writing entry.title, a method replacing entry, a root handler calling the method).

  4. Anton changed the state review
  5. Anton commented

    Rebased onto master f15a2f7f: the fix is commit 970f910b on branch spec-pass (same change, gates green).

  6. Caramboleyo changed the state done

Reading is open to everyone. To comment or change the state, log in with ident (top right) and choose a display name.