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=''">×</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);