Skip to content

Allow definition of targets in kebab-case but access via camelCase #187

Open

Description

@erinnachen

For attributes, I define in the markup data-my-attr-name and in the controller as @attr myAttrName

For targets however, I have to define the target name in both the markup and the controller using camelCase:
data-targets="my-controller.myTargetsName" and @targets myTargetsName
I think it would be nice (more consistent?) if the markup could support kebab-case.

Activity

  1. keithamus commented on Mar 11, 2022

    @keithamus
    Contributor

    Thanks @erinnachen thats some great feedback!

    This sounds like it might be a breaking change. If we're making a breaking change I wonder if we can really think about improving ergonomics for actions, targets and attrs to make them all consistent?

    • maybe attrs can drop the data- prefix? This felt like a safe choice but it's quite ugly
    • how bad would it be to remove the transformation altogether? Such that @attr fooBar mapped to the html attribute fooBar? IIRC attributes are case insensitive which could cause problems 🤷‍♂️
  2. added this to the v2 milestone on May 5, 2022
  3. rccc commented on Dec 19, 2022

    @rccc

    Hello,

    Let me add a comment about syntax :

    Why

    data-targets="my-controller.myTargetsName"

    rather than

    data-targets="myTargetsName" like stimulus (without "my-controller") ?

    Is that the component root element does not corresponds to controller element ("this.element") in stimumlus ?

    Thanks in advance

    Eric

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions