我是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'
加了下划线。不管怎样,它运行良好并且可以按预期运行。
谢谢!
答案 0 :(得分:2)
$
没有特殊含义。按照惯例,它通常用于生成代码中的名称。
Angular还使用代码生成,并且仅在代码生成由webdev serve
或webdev build
执行后,该代码才可用。
我不知道当前状态,但是代码可能仍会在DartAnalyzler未分析的目录中生成,即使应用程序可以正常运行,您也可能总是看到错误。