我有一个样本plunker here
我有一个登录页面,并且在成功登录后,用户被重定向到实际的主页,类似于:
$state.go('home');
现在,登录后,我有一个按钮来显示一些对话框。单击该按钮无法加载对话框。如果用户刷新主页(登录后),然后单击按钮,则对话框将成功打开。 我无法理解为什么会这样。这可能是由于angular-ui-router中的错误造成的?或者我错过了什么?
答案 0 :(得分:1)
我相信,你错了,当使用ui路由器时,你应该让它控制你的状态。我不确定为什么你的对话框无法显示,但我注意到你正在使用ng-click
打开它。更好的方法是制作一个ui-sref
按钮,该按钮映射到子状态。
<md-button ui-sref="characters.create" />
然后在你的状态定义中定义一个onEnter
而不是一个控制器。
.state( 'characters.create', {
url: '/create',
templateUrl: 'character/create.html',
onEnter: function( $mdDialog, $log, $state ) {
var ev = null; // this should be the $event
$mdDialog.show(
$mdDialog.alert()
.parent( angular.element( document.body ) )
.title( 'This is an alert title' )
.content( 'You can specify some description text in here.' )
.ariaLabel( 'Alert Dialog Demo' )
.ok( 'Got it!' )
.targetEvent( ev )
).then( function( answer ) {
$log.debug( 'answer', answer );
$state.go( 'characters' );
}, function() {
$log.debug( 'cancelled dialog' );
} )
}