我尝试使用HashLocationStrategy在Dart的angular2-beta.20中使用路由器。 但我找不到任何文档,除了 this link to angular2-beta.15 docs,这是不完整的。 该示例显示TypeScript导入而不是Dart导入。
所以我尝试导入package:angular2/router.dart
,但Dart分析师一直抱怨找不到LocationStrategy
和HashLocationStrategy
另外我不知道,如何准确地编写导入,因为顶层提供函数(如上例所示)似乎不存在。
provide(LocationStrategy, {useClass: HashLocationStrategy})
答案 0 :(得分:4)
经过一番研究后,我发现了以下内容:
LocationStrategy
和HashLocationStrategy
现在是其中的一部分
package:angular2/platform/common.dart
代替package:angular2/router.dart
。
bootstrap()
- 方法是特定于平台的,因此我们需要导入package:angular2/platform/browser.dart
。
我们需要导入package:angular2/router.dart
以ROUTER_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)
]);
}
希望这有助于某人! :)