Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

@NgAttr and @Ng*Way* sometimes cause errors after compilation #1047

Closed
@sjoqvist

Description

@sjoqvist

The following code generates the error No getter for 'myvalue'. and a stacktrace in the compiled Dart and JS code (tried in Dartium and Firefox) but not in the development version. I'm using Dart 1.3.6 and AngularDart 0.11.0, but the issue doesn't seem to be specific to these versions.

<!DOCTYPE html>

<html ng-app>
  <body>
    <p myctrl>Hello World!</p>

    <script type="application/dart" src="main.dart"></script>
    <script src="packages/browser/dart.js"></script>
  </body>
</html>
import 'package:angular/angular.dart';
import 'package:angular/application_factory.dart';

class AppModule extends Module {
  AppModule() { type(MyController); }
}

void main() {
  applicationFactory().addModule(new AppModule()).run();
}

@Controller(selector: '[myctrl]', publishAs: 'ctrl')
class MyController {
  MyController();
  @NgAttr('myattr') // or @NgTwoWay, @NgOneWay, @NgOneWayOneTime
  int myvalue;
}

The issue disappears when removing either the myctrl attribute from <p> or the @NgAttr annotation. Also, {{ctrl.myvalue}} can be added in the HTML, and for some reason renaming myvalue to value seems to work.

More information can be found in my Google Groups discussion with @vicb.

Here's the full stacktrace:

No getter for 'myvalue'.

STACKTRACE:
#0      StaticClosureMap.lookupGetter (package:angular/core/parser/parser_static.dart:15:25)
#1      DynamicParserBackend.newAccessScope (package:angular/core/parser/dynamic_parser.dart:108:38)
#2      DynamicParserImpl.parseAccessOrCallScope (package:angular/core/parser/dynamic_parser_impl.dart:257:67)
#3      DynamicParserImpl.parsePrimary (package:angular/core/parser/dynamic_parser_impl.dart:239:36)
#4      DynamicParserImpl.parseAccessOrCallMember (package:angular/core/parser/dynamic_parser_impl.dart:193:30)
#5      DynamicParserImpl.parsePrefix (package:angular/core/parser/dynamic_parser_impl.dart:188:37)
#6      DynamicParserImpl.parseMultiplicative (package:angular/core/parser/dynamic_parser_impl.dart:163:29)
#7      DynamicParserImpl.parseAdditive (package:angular/core/parser/dynamic_parser_impl.dart:149:37)
#8      DynamicParserImpl.parseRelational (package:angular/core/parser/dynamic_parser_impl.dart:131:31)
#9      DynamicParserImpl.parseEquality (package:angular/core/parser/dynamic_parser_impl.dart:117:33)
#10     DynamicParserImpl.parseLogicalAnd (package:angular/core/parser/dynamic_parser_impl.dart:108:31)
#11     DynamicParserImpl.parseLogicalOr (package:angular/core/parser/dynamic_parser_impl.dart:99:33)
#12     DynamicParserImpl.parseConditional (package:angular/core/parser/dynamic_parser_impl.dart:83:32)
#13     DynamicParserImpl.parseExpression (package:angular/core/parser/dynamic_parser_impl.dart:68:34)
#14     DynamicParserImpl.parseFormatter (package:angular/core/parser/dynamic_parser_impl.dart:53:33)
#15     DynamicParserImpl.parseChain (package:angular/core/parser/dynamic_parser_impl.dart:35:32)
#16     DynamicParser._parse (package:angular/core/parser/dynamic_parser.dart:36:46)
#17     DynamicParser.call.<anonymous closure> (package:angular/core/parser/dynamic_parser.dart:31:50)
#18     _HashMap.putIfAbsent (dart:collection-patch/collection_patch.dart:124)
#19     DynamicParser.call (package:angular/core/parser/dynamic_parser.dart:31:30)
#20     ElementBinder._createAttrMappings.<anonymous closure> (package:angular/core_dom/element_binder.dart:132:37)
#21     List.forEach (dart:core-patch/growable_array.dart:240)
#22     ElementBinder._createAttrMappings (package:angular/core_dom/element_binder.dart:128:21)
#23     ElementBinder._link.<anonymous closure> (package:angular/core_dom/element_binder.dart:213:30)
#24     ElementBinder._link.<anonymous closure> (package:angular/core_dom/element_binder.dart:233:9)
#25     ElementBinder._link.<anonymous closure> (package:angular/core_dom/element_binder.dart:233:9)
#26     List.forEach (dart:core-patch/growable_array.dart:240)
#27     ElementBinder._link (package:angular/core_dom/element_binder.dart:194:33)
#28     ElementBinder.bind (package:angular/core_dom/element_binder.dart:327:10)
#29     TaggingViewFactory._bindTagged (package:angular/core_dom/tagging_view_factory.dart:33:51)
#30     TaggingViewFactory._link (package:angular/core_dom/tagging_view_factory.dart:67:22)
#31     TaggingViewFactory.call (package:angular/core_dom/tagging_view_factory.dart:21:12)
#32     TaggingViewFactory.call (package:angular/core_dom/tagging_view_factory.dart:23:7)
#33     TaggingViewFactory.call (package:angular/core_dom/tagging_view_factory.dart:23:7)
#34     Application.run.<anonymous closure>.<anonymous closure> (package:angular/application.dart:174:22)
#35     _rootRunUnary (dart:async/zone.dart:730)
#36     _ZoneDelegate.runUnary (dart:async/zone.dart:462)
#37     _onRunUnary.<anonymous closure> (package:angular/core/zone.dart:114:63)
#38     VmTurnZone._onRunBase (package:angular/core/zone.dart:98:16)
#39     _onRunUnary (package:angular/core/zone.dart:114:17)
#40     _ZoneDelegate.runUnary (dart:async/zone.dart:462)
#41     _CustomizedZone.runUnary (dart:async/zone.dart:667)
#42     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:488)
#43     _Future._propagateToListeners (dart:async/future_impl.dart:571)
#44     _Future._completeWithValue (dart:async/future_impl.dart:331)
#45     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:393)
#46     _rootRun (dart:async/zone.dart:719)
#47     _ZoneDelegate.run (dart:async/zone.dart:453)
#48     _onScheduleMicrotask.<anonymous closure> (package:angular/core/zone.dart:122:39)
#49     _rootRun (dart:async/zone.dart:723)
#50     _ZoneDelegate.run (dart:async/zone.dart:453)
#51     VmTurnZone._finishTurn (package:angular/core/zone.dart:148:23)
#52     VmTurnZone._onRunBase (package:angular/core/zone.dart:105:43)
#53     _onRun (package:angular/core/zone.dart:110:17)
#54     _ZoneDelegate.run (dart:async/zone.dart:453)
#55     _CustomizedZone.run (dart:async/zone.dart:663)
#56     VmTurnZone.run (package:angular/core/zone.dart:219:40)
#57     Application.run (package:angular/application.dart:166:20)
#58     main (http://127.0.0.1:3030/crashapp/build/web/main.dart:12:252)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions