我在 AngularDart 0.11.0 中尝试过这种语法:Angular Dart passing data from route service into a controller
module.value(RouteInitializerFn, configureRoutes);
void configureRoutes(Router router, RouteViewFactory views)
{
print("configureRoutes");
views.configure({
'login': ngRoute(
path: '/login',
view: 'login/login.tpl.html'),
'today': ngRoute(
path: '/today',
view: '/today/today.tpl.html')
});
但是,我的路由功能似乎从未被调用过。我使用了 print 语句和断点都无济于事。当我尝试这样调用它时:
WorkoutLoggerApplication(this.rootScope, this.router)
{
print("WorkoutLoggerApplication::constructor");
new Future.delayed(new Duration(seconds: 2), ()
{
router.go("login", {});
});
}
我得到:
错误状态:无效的路由名称:登录
我试过 0.10.0,但没有成功。我还尝试了 3 种新的绑定(bind)函数格式,两者似乎都没有触发路由函数。
最佳答案
我也为当前的示例苦苦挣扎。我最终得到了类似下面的例子。 NgRoutingUsePushState 设置在 0.11.0 中是必需的,或者更改路由似乎不起作用,可能已在 0.12.0 上修复。
library myangular;
import 'package:angular/angular.dart';
import 'package:angular/application_factory.dart';
class MyModule extends Module {
MyModule() {
bind(RouteInitializerFn, toValue: myRouteInitializer);
bind(NgRoutingUsePushState, toFactory: (_) => new NgRoutingUsePushState.value(false));
}
}
void myRouteInitializer(Router router, RouteViewFactory views) {
views.configure({
'foo': ngRoute(
path: '/foo',
view: 'view/foo.html'),
'bar': ngRoute(
path: '/bar',
view: 'view/bar.html',
defaultRoute: true),
});
}
void main() {
applicationFactory()
.addModule(new MyModule())
.run();
}
关于dart - 无法让 Angular Dart 路由器工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24093328/