如何在dart的angular2-beta.20中使用HashLocationStrategy用于路由器?

时间:2016-08-23 09:13:03

标签: dart angular2-routing angular2-router

我尝试使用HashLocationStrategy在Dart的angular2-beta.20中使用路由器。 但我找不到任何文档,除了 this link to angular2-beta.15 docs,这是不完整的。 该示例显示TypeScript导入而不是Dart导入。

所以我尝试导入package:angular2/router.dart,但Dart分析师一直抱怨找不到LocationStrategyHashLocationStrategy

另外我不知道,如何准确地编写导入,因为顶层提供函数(如上例所示)似乎不存在。 provide(LocationStrategy, {useClass: HashLocationStrategy})

1 个答案:

答案 0 :(得分:4)

经过一番研究后,我发现了以下内容:

  • LocationStrategyHashLocationStrategy现在是其中的一部分 package:angular2/platform/common.dart代替package:angular2/router.dart

  • bootstrap() - 方法是特定于平台的,因此我们需要导入package:angular2/platform/browser.dart

  • 我们需要导入package:angular2/router.dartROUTER_PROVIDERS方式提供bootstrap()

以下是dart文件初始化的工作代码示例:

// needed to import "bootstrap" method
import 'package:angular2/platform/browser.dart';

// needed to import LocationStrategy and HashLocationStrategy
import 'package:angular2/platform/common.dart';

// needed for Provider class
import 'package:angular2/angular2.dart';

// needed to import ROUTER_PROVIDERS
import 'package:angular2/router.dart'; 

// import your app_component as root component for angular2
import 'app_component.dart';

void main() {
  bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    const Provider(LocationStrategy, useClass: HashLocationStrategy)
  ]);
}

希望这有助于某人! :)