Dart method $ Class语法

时间:2019-01-25 13:29:46

标签: dart angular-dart

我是dart的新手,并且遵循Dart为网页提供的tutorial

这一切都很有意义-除了一个语法:

final InjectorFactory injector = self.injector$Injector;

这是教程中的完整代码:

import 'main.template.dart' as self;

const useHashLS = false;

@GenerateInjector([
  routerProvidersHash,
  ClassProvider(Client, useClass: InMemoryDataService),
  // Using a real back end?
  // Import 'package:http/browser_client.dart' and change the 
 above to:
  //   ClassProvider(Client, useClass: BrowserClient),
])
final InjectorFactory injector = self.injector$Injector;

void main() {
  runApp(ng.AppComponentNgFactory, createInjector: injector);
}

我对明显的.method$Class语法感到困惑。谁能向我解释这意味着什么/正在做什么?

在Webstorm中也用消息The getter 'injector$Injector' isn't defined for the class 'self'加了下划线。不管怎样,它运行良好并且可以按预期运行。

谢谢!

1 个答案:

答案 0 :(得分:2)

标识符中的

$没有特殊含义。按照惯例,它通常用于生成代码中的名称。

Angular还使用代码生成,并且仅在代码生成由webdev servewebdev build执行后,该代码才可用。

我不知道当前状态,但是代码可能仍会在DartAnalyzler未分析的目录中生成,即使应用程序可以正常运行,您也可能总是看到错误。