Javascript AngularJS:将消息传递到路由

Javascript AngularJS:将消息传递到路由,javascript,angularjs,Javascript,Angularjs,这是一个关于风格或角度的问题 当用户注册时,我会向他们发送一封确认电子邮件,并重定向到'/' 另外,在登录时,如果用户尚未确认他们的电子邮件,我会给他们一个重新发送确认电子邮件的选项。我重新发送确认电子邮件并重定向到“/” 在这两种情况下,我都希望在主页顶部显示一条信息性消息 我已经找到了一种方法 我创建了一些虚拟路由,其中有一个空白模板和一个简单的控制器,该控制器在服务上设置消息,并重定向到“/”: 只是感觉有点不舒服。必须指定非空的模板尤其难看 我相信一定有更好的方法可以做到这一点?对于某些

这是一个关于风格或角度的问题

当用户注册时,我会向他们发送一封确认电子邮件,并重定向到
'/'

另外,在登录时,如果用户尚未确认他们的电子邮件,我会给他们一个重新发送确认电子邮件的选项。我重新发送确认电子邮件并重定向到
“/”

在这两种情况下,我都希望在主页顶部显示一条信息性消息

我已经找到了一种方法

我创建了一些虚拟路由,其中有一个
空白模板
和一个简单的
控制器
,该控制器在
服务上设置消息
,并重定向到
“/”

只是感觉有点不舒服。必须指定非空的
模板
尤其难看

我相信一定有更好的方法可以做到这一点?对于某些人来说,如何在重定向时将
$scope
传递给控制器,或者沿着这些线路传递

这是我的实现

虚拟路线:

信息服务:

为完整起见,以下是消息部分控制器

部分(用
ng include
拉入
index.html
):


您可以使用$emit/$on来完成此操作

您可以使用MessageCtrl显示一条消息,该消息在使用$on的事件上触发

$scope.$on('EventName', function(event, anyInput) {
    // Do your magic
}
从发送消息的其他控制器执行$emit。如果愿意,也可以使用$rootScope使其成为全局的

$scope.$emit('EventName', inputToThe$on);
检查此JSFIDLE:

下面是对$emit和$broadcast的另一个很好的解释:


希望这是一个有用的选择。

这是一个不错的选择!
    <div class="container" ng-controller="MessageCtrl">
        <div ng-show="message.info" class="alert alert-info">
            {{ message.info }}
            <button class="close pull-right" ng-click="message.info=''">&times;</button>
        </div>
    </div>
app.controller('MessageCtrl', function($scope, Message) {
    $scope.message = Message;
});
$scope.$on('EventName', function(event, anyInput) {
    // Do your magic
}
$scope.$emit('EventName', inputToThe$on);