在我的应用程序中,我有一个非常简单的控制器,其工作是显示消息:
angular.module("app.components.messages", ['ngSanitize'])
.controller("MessageBoxController", ['$scope', function($scope)
{
$scope.messageType = 'info';
$scope.hidden = true;
$scope.$on('message.error', function(event, message)
{
$scope.message = message;
$scope.messageType = 'error';
$scope.hidden = false;
});
$scope.$on('message.warning', function(event, message)
{
$scope.message = message;
$scope.messageType = 'warning';
$scope.hidden = false;
});
}]);
然后消息框本身非常直接:
<div id="message-box" ng-controller="MessageBoxController"></div>
我正在使用ngSanitize,因为有时我想在邮件中放置链接。例如,在另一个控制器中,我可能会这样做:
$rootScope.$broadcast('message.warning', 'You are about to download ' + file.name + ' which is ' + file.size + '. Your current quota is ' + user.quotaRemaining + ' click <a href="' + url + '">here</a> to confirm.');
这样可行,并显示链接和所有内容。但是在这种特殊情况下,在用户点击链接后,我希望它再启动另一个功能来更新用户的配额信息。我天真地尝试对我的标签进行ng-click,但事实证明ngSanitize过滤掉了某些属性,因此无效。
如何点击邮件中的链接后才能收到相关内容?我不一定要使用ngSanitize,我只是使用它,因为它看起来很方便。