Skip to content

Using ngHttp.HTTP_BINDINGS in SFX build causes InvalidBindingError in alpha.35 #3898

@alfonso-presa

Description

@alfonso-presa

When using ngHttp.HTTP_BINDINGS in angular's 2.0.0_alpha.35 sfx.dev build it's throwing the following error:

InvalidBindingError {message: "Invalid binding - only instances of Binding and Type are allowed, got: [object Object]", _originalException: undefined, _originalStack: undefined, _context: undefined, stack: "Error↵    at InvalidBindingError.BaseException (ht….org/2.0.0-alpha.35/angular2.sfx.dev.js:20107:38)"}

Error
    at InvalidBindingError.BaseException (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:11539:25)
    at new InvalidBindingError (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:12886:65)
    at _resolveBindings (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:32901:15)
    at _resolveBindings (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:32897:20)
    at Function.System.register.execute.Injector.resolve (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:33554:36)
    at Injector.System.register.execute.Injector.resolveAndCreateChild (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:33325:45)
    at _createAppInjector (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:36509:26)
    at https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:36475:27
    at Zone.run (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:136:17)
    at Zone.System.register.execute.NgZone._createInnerZone.zone.fork.fork.$run [as run] (https://code.angularjs.org/2.0.0-alpha.35/angular2.sfx.dev.js:20107:38)

Here you have a plunkr to reproduce the issue:
http://plnkr.co/edit/XIW0EgIZvs3dtNcYN1dJ?p=preview

If you change ngHttp.HTTP_BINDINGS for the following code, then everything works:

[
   ng.bind(ngHttp.ConnectionBackend).toClass(ngHttp.XHRBackend), 
   ngHttp.BrowserXhr, 
   ng.bind(ngHttp.RequestOptions).toClass(ngHttp.BaseRequestOptions),
   ng.bind(ngHttp.ResponseOptions).toClass(ngHttp.BaseResponseOptions),
   ngHttp.Http
]

Looks like ngHttp module is using a somehow incompatible binding mechanism to generate HTTP_BINDINGS.

If I'm making something wrong any advice is welcome. Also if you think I can give you a hand to resolve this give me some tips and I'll PR with a solution.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions