Git Product home page Git Product logo

Comments (7)

timostamm avatar timostamm commented on August 11, 2024 1

Having the same error message after updating my tsconfig.json (angular 6.10) from:

  "compilerOptions": {
    "target": "es5",

to:

  "compilerOptions": {
    "target": "es6",

With this change, I can reliably turn the bug on and off.

I guess that there is a side-effect of the transpilation that uncovers the bug.

For now, I have reverted to es5 - I was just checking out generator support.

My guess is that adding a constructor that calls the super constructor will fix the issue.

from ng-trim-value-accessor.

eassymo avatar eassymo commented on August 11, 2024

Upgrading from 1.0.1 to 2.0.2 throws next error:

TypeError: Class constructor DefaultValueAccessor cannot be invoked without 'new'

from ng-trim-value-accessor.

khashayar avatar khashayar commented on August 11, 2024

What exact version of Angular are you using? Can you provide a plunker?

from ng-trim-value-accessor.

dankahle avatar dankahle commented on August 11, 2024

I'm thinking this DefaultValueAccessor was never meant to be extended. These host bindings only work on the subclass, i.e. they don't inherit, this is why you have bug #11. Because your (blur) handler overrides (in actuality it could never run as "only the subclasses host bindings will run") the parent classes (blur) host binding that points to OnTouched(). As I look at this, and try to hack a solution, the only thing that comes to mind is to just copy DefaultValueAccessor and hack that, i.e. don't inherit anything. It has implementation that it figures is important, but that's in private methods inaccessible from a subclass, so you can't just subclass it, steal its host bindings and override a couple methods (writeValue, _handleInput) to get what you want. I'm gonna try to write this from scratch using the DefaultValueAccessor as a template to start from. Probably the only way.

from ng-trim-value-accessor.

dankahle avatar dankahle commented on August 11, 2024

ok, seems like this is working. I have to wrap it in tests, but I figure this is the way to go (copy and hack DefaultValueAccessor). I also added :not(input:[matAutoComplete], the only material accessor I know that it had been clashing with: you can only have one accessor per form control. In reality, no trim needed for autocomplete, so no big deal there.
my accessor

from ng-trim-value-accessor.

FrancescoBorzi avatar FrancescoBorzi commented on August 11, 2024

hello there, this looks like a common issue among all libraries that extend DefaultValueAccessor. I opened a question here, so we can merge our forces to deal with this problem:

https://stackoverflow.com/questions/53371662/typeerror-class-constructor-defaultvalueaccessor-cannot-be-invoked-without-new

please feel free to contribute

from ng-trim-value-accessor.

khashayar avatar khashayar commented on August 11, 2024

Thanks for your detailed report. Please feel free to open a PR for the fix and I will be happy to merge it.

from ng-trim-value-accessor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.