1

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

所以我尝试导入package:angular2/router.dart,但 Dart Analyzer 一直抱怨它找不到LocationStrategy并且HashLocationStrategy

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

4

1 回答 1

4

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

  • LocationStrategy并且HashLocationStrategy现在是 的一部分 package:angular2/platform/common.dart而不是package:angular2/router.dart

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

  • 我们需要导入package:angular2/router.dart才能ROUTER_PROVIDERSbootstrap()方法中使用。

这是 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)
  ]);
}

希望这对某人有帮助!:)

于 2016-08-23T09:13:02.580 回答