Как использовать HashLocationStrategy для роутера в angular2-beta.20 в дротике?
Я попытался использовать роутер в angular2-beta.20 в Dart с HashLocationStrategy. Но я не смог найти никаких документов, кроме этой ссылки на документы angular2-beta.15, которые являются неполными. Пример показывает импорт TypeScript вместо Dart.
Поэтому я попытался импортировать package:angular2/router.dart
, но анализатор дротиков продолжает жаловаться, что не может найти LocationStrategy
а также HashLocationStrategy
Также я не знаю, как написать импорт точно, потому что функция обеспечения верхнего уровня, как в примере выше, кажется, не существует. provide(LocationStrategy, {useClass: HashLocationStrategy})
1 ответ
После некоторых исследований я обнаружил следующее:
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)
]);
}
Надеюсь, это кому-нибудь поможет!:)