Angular: Angular components can't cope with import aliases with providers and constructor parameters

Created on 3 Jan 2017  Â·  12Comments  Â·  Source: angulardart/angular

import 'package:angular2/core.dart' as _i1;
import 'package:fhir_client/webui.dart' as _i2;
import 'package:bwu_ng_mdl/bwu_ng_mdl.dart' as _i3;
import 'package:angular2_components/angular2_components.dart' as _i4;
import 'dart:core' as _i5;

@_i1.Component(
    selector: 'fhir-gen-app',
    templateUrl: 'app_component.html',
    styleUrls: const [
      'app_component.css'
    ],
    providers: const [
      _i2.ToolbarService,
   // ^^^
      _i3.MediaQueryService,
   // ^^^
      _i4.materialProviders
   // ^^^
    ])
class AppComponent {
  final _i2.AlertService alertService;
     // ^^^

  final _i2.ToolbarService toolbarService;
     // ^^^

  _i5.String title = '';

  _i5.bool mobileView = false;

  AppComponent(this.alertService, this.toolbarService) {
    toolbarService.title.listen(_titleUpdateHandler);
  }

  @_i1.HostBinding('class.mobile-view')
  _i5.bool get mobileViewCssClass => mobileView;

  @_i1.HostBinding('class.desktop-view')
  _i5.bool get desktopViewCssClass => mobileView;

  void _titleUpdateHandler(_i5.List value) {
    title = value.join('-');
  }

  _i5.bool get isIndeterminateAction => toolbarService.isIndeterminateAction;
}

```
Build completed successfully
Build error:
Transform DirectiveProcessor on test_project|lib/generated/components/app_component.dart threw error: Invalid argument(s): Incorrect identifier "_i2.ToolbarService".
package:angular2/src/transform/common/type_metadata_reader.dart 1316:7 _readIdentifier
package:angular2/src/transform/common/type_metadata_reader.dart 1074:14 _readProviders.
dart:_internal/iterable.dart 416 MappedListIterable.elementAt
dart:_internal/iterable.dart 222 ListIterable.toList
package:angular2/src/transform/common/type_metadata_reader.dart 1087:6 _readProviders
package:angular2/src/transform/common/type_metadata_reader.dart 626:24 _DirectiveMetadataVisitor._populateProviders
package:angular2/src/transform/common/type_metadata_reader.dart 729:9 _DirectiveMetadataVisitor.visitNamedExpression
package:analyzer/src/dart/ast/ast.dart 7455:15 NamedExpressionImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:analyzer/src/dart/ast/ast.dart 432:16 ArgumentListImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1353:10 Object&RecursiveAstVisitor.visitArgumentList
package:analyzer/src/dart/ast/ast.dart 428:15 ArgumentListImpl.accept
package:analyzer/src/dart/ast/ast.dart 323:17 AnnotationImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1347:10 Object&RecursiveAstVisitor.visitAnnotation
package:angular2/src/transform/common/type_metadata_reader.dart 441:28 _DirectiveMetadataVisitor.visitAnnotation
package:analyzer/src/dart/ast/ast.dart 317:15 AnnotationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 672:19 _DirectiveMetadataVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15 ClassDeclarationImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 72:10 TypeMetadataReader.readTypeMetadata
package:angular2/src/transform/directive_processor/rewriter.dart 98:10 _NgMetaVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15 ClassDeclarationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 92:30 _NgMetaVisitor.visitCompilationUnit
package:analyzer/src/dart/ast/ast.dart 2445:15 CompilationUnitImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 52:16 createNgMeta...
dart:async/future.dart 184 Future.Future.microtask.
dart:async/zone.dart 1150 _rootRun
dart:async/zone.dart 1026 _CustomZone.run
dart:async/zone.dart 953 _CustomZone.bindCallback.
dart:async/schedule_microtask.dart 41 _microtaskLoop
dart:async/schedule_microtask.dart 50 _startMicrotaskLoop
dart:isolate-patch/isolate_patch.dart 96 _runPendingImmediateCallback
dart:isolate-patch/isolate_patch.dart 149 _RawReceivePortImpl._handleMessage

package:angular2/src/transform/common/type_metadata_reader.dart 1316:7 _readIdentifier
package:angular2/src/transform/common/type_metadata_reader.dart 1074:14 _readProviders.
dart:_internal ListIterable.toList
package:angular2/src/transform/common/type_metadata_reader.dart 1087:6 _readProviders
package:angular2/src/transform/common/type_metadata_reader.dart 626:24 _DirectiveMetadataVisitor._populateProviders
package:angular2/src/transform/common/type_metadata_reader.dart 729:9 _DirectiveMetadataVisitor.visitNamedExpression
package:analyzer/src/dart/ast/ast.dart 7455:15 NamedExpressionImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:analyzer/src/dart/ast/ast.dart 432:16 ArgumentListImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1353:10 Object&RecursiveAstVisitor.visitArgumentList
package:analyzer/src/dart/ast/ast.dart 428:15 ArgumentListImpl.accept
package:analyzer/src/dart/ast/ast.dart 323:17 AnnotationImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1347:10 Object&RecursiveAstVisitor.visitAnnotation
package:angular2/src/transform/common/type_metadata_reader.dart 441:28 _DirectiveMetadataVisitor.visitAnnotation
package:analyzer/src/dart/ast/ast.dart 317:15 AnnotationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 672:19 _DirectiveMetadataVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15 ClassDeclarationImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 72:10 TypeMetadataReader.readTypeMetadata
package:angular2/src/transform/directive_processor/rewriter.dart 98:10 _NgMetaVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15 ClassDeclarationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20 NodeListImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 92:30 _NgMetaVisitor.visitCompilationUnit
package:analyzer/src/dart/ast/ast.dart 2445:15 CompilationUnitImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 52:16 createNgMeta...

This works fine though
```dart
@_i1.AngularEntrypoint('generic')
void main() {
  _i2.initLogging();
  _i3.bootstrap(_i4.AppComponent, [_i5.rootProviders]);
}

import 'dart:core' as _i1;
import 'package:angular2/core.dart' as _i2;
import 'package:test_project/generated/data_sources/mita_tac.dart' as _i3;
import 'package:angular2/router.dart' as _i4;
import 'package:angular2/platform/common.dart' as _i5;
import 'package:fhir_client/util.dart' as _i6;
import 'package:test_project/entry_points/run_mode.dart' as _i7;
import 'package:fhir_client/util/json_pretty_print_service_browser.dart' as _i8;
import 'package:fhir_client/webui.dart' as _i9;
import 'package:http/http.dart' as _i10;
import 'package:http/browser_client.dart' as _i11;

final _i1.List rootProviders = [
  _i2.provide('DataSourceMitaTac', useValue: _i3.MitaTac),
  _i4.ROUTER_PROVIDERS,
  _i2.provide(_i5.APP_BASE_HREF, useValue: '/'),
  _i2.provide(_i5.LocationStrategy, useClass: _i5.LocationStrategy),
  _i2.provide(_i6.RunMode, useValue: _i7.runMode),
  _i2.provide(_i6.JsonPrettyPrintService,
      useClass: _i8.JsonPrettyPrintServiceBrowser),
  _i2.provide(_i9.AlertService, useClass: _i9.AlertServiceBrowser),
  _i2.provide(_i10.BaseClient, useValue: _i11.BrowserClient)
];

Most helpful comment

This should be ready as part of the 4.0 release.

All 12 comments

... which makes generating components using code_builder impossible :-/

You could turn auto prefixing off for the time being

On Tue, Jan 3, 2017, 9:03 AM Günter Zöchbauer notifications@github.com
wrote:

... which makes generating components using code_builder impossible :-/

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/angular2/issues/245#issuecomment-270120449,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKQ7rbYCnD3uRvdHa5eGmXh12iWPUFXks5rOlU7gaJpZM4LZpI6
.

@matanlurey that would work for me. How can I do that? Haven't found anything myself yet.

'new LibraryBuilder()' (without .scope)?

On Tue, Jan 3, 2017, 9:28 AM Günter Zöchbauer notifications@github.com
wrote:

@matanlurey https://github.com/matanlurey that would work for me. How
can I do that? Haven't found anything myself yet.

—
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/dart-lang/angular2/issues/245#issuecomment-270125538,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKQ7iJ-AoTsjl512M3YPL6YNL9n27maks5rOlsAgaJpZM4LZpI6
.

But then I get no imports at all, or am I doing it wrong?
The automatically resolved imports are one of the main reasons why I use code_builder

There are alternative scope implementations - sorry I'm on mobile but grep
Scope in code builder.

On Tue, Jan 3, 2017, 10:02 AM Günter Zöchbauer notifications@github.com
wrote:

But then I don't get no imports at all, or am I doing it wrong?
The automatically resolved imports are one of the main reasons why I use
code_builder

—
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/dart-lang/angular2/issues/245#issuecomment-270133396,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKQ7m4OA9MTLbVAPn-A7ozq3yVKapovks5rOmMNgaJpZM4LZpI6
.

Thanks for the info! Sure, will have another look. End of day here anyway.

@matanlurey thanks for the hint.
I could make it work using new LibraryBuilder.scope(scope: new Scope.dedupe())

Requires the new compiler.

This should be ready as part of the 4.0 release.

Closing as it's fixed at HEAD, and will release with 4.0.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Cododoc picture Cododoc  Â·  6Comments

4cm4k1 picture 4cm4k1  Â·  5Comments

chalin picture chalin  Â·  3Comments

mandreyel picture mandreyel  Â·  6Comments

ranquild picture ranquild  Â·  6Comments