【发布时间】:2015-08-08 02:16:58
【问题描述】:
我有一个使用 login_form 组件的主应用程序组件,当提交登录表单时,我想使用路由器将页面重定向到主页。
/main_app/main_app.dart
@CustomTag('main-app')
class MainApp extends PolymerElement {
@observable String route;
final Router router = new Router();
MainApp.created() : super.created();
ready() {
print('Main App: ready()');
router.root
..addRoute(name: 'home', path: '/', enter: showHome, defaultRoute: true)
..addRoute(name: 'login', path: '/#!/login', enter: showLogin);
router.listen();
}
void showHome(RouteEvent event) {
print("Main App: showHome()");
route = event.route.name;
}
void showLogin(RouteEvent event) {
print("Main App: showLogin()");
route = event.route.name;
}
}
/login_form/login_form.dart
@CustomTag('login-form')
class LoginForm extends PolymerElement {
@observable String username;
@observable String password;
LoginForm.created() : super.created();
void submit(Event event, Object detail, Node sender) {
// Form submit
// Access router here
// ie. router.go('home', {});
}
}
我找到了像这样使用单例的解决方案
static final Router _sharedRouter = new Router();
static Router get sharedRouter => _router;
然后
MainApp.sharedRouter.go('home', {}}
有没有更好的方法来做到这一点?
【问题讨论】:
标签: dart dart-polymer