Angularjs $materialDialog与angular ui路由器一起使用时无法显示

Angularjs $materialDialog与angular ui路由器一起使用时无法显示,angularjs,angular-ui-router,material-design,Angularjs,Angular Ui Router,Material Design,我有一个样品 我有一个登录页面,成功登录后,用户将重定向到实际主页,类似于: $state.go('home'); 现在,在登录之后,我有一个按钮来显示一些对话框。单击按钮无法加载对话框。如果用户刷新主页(登录后),然后单击按钮,则对话框将成功打开。 我无法理解为什么会发生这种情况。这可能是由于angular ui路由器中的错误造成的吗?还是我遗漏了什么?我相信,你错了,当使用ui路由器时,你应该让它控制你的状态。我不确定为什么您的对话框无法显示,但我注意到您正在使用ng单击打开它。更好的方法

我有一个样品

我有一个登录页面,成功登录后,用户将重定向到实际主页,类似于:

$state.go('home');
现在,在登录之后,我有一个按钮来显示一些对话框。单击按钮无法加载对话框。如果用户刷新主页(登录后),然后单击按钮,则对话框将成功打开。
我无法理解为什么会发生这种情况。这可能是由于angular ui路由器中的错误造成的吗?还是我遗漏了什么?

我相信,你错了,当使用ui路由器时,你应该让它控制你的状态。我不确定为什么您的对话框无法显示,但我注意到您正在使用
ng单击打开它。更好的方法是制作一个带有
ui sref
的按钮,该按钮映射到一个子状态

<md-button ui-sref="characters.create" />

向下投票,因为你只链接到你的代码,你没有把它放在这里。链接到完整的示例很好,但是您应该在这里包含最相关的部分。
.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' );
                } )
        }