Javascript AngularJS方式:使用通知功能扩展控制器/视图

Javascript AngularJS方式:使用通知功能扩展控制器/视图,javascript,angularjs,notifications,Javascript,Angularjs,Notifications,在AngularJS中,向所需控制器添加公共通知功能的最佳方式是什么 目标是创建本地通知,以便为任何控制器轻松添加/删除 因此: 控制器之间的共享功能 此功能应与视图一起工作(?如何?不知道)以进行输出 通知 现在我们有了 我喜欢UI引导中实现的方式(来自Angular UI团队): {{alert.msg} 添加警报 函数AlertDemoCtrl($scope){ $scope.alerts=[ {键入:'error',msg:'Oh snap!更改一些内容,然后再次尝试提交。}, {键入

在AngularJS中,向所需控制器添加公共通知功能的最佳方式是什么

目标是创建本地通知,以便为任何控制器轻松添加/删除

因此:

  • 控制器之间的共享功能
  • 此功能应与视图一起工作(?如何?不知道)以进行输出 通知
  • 现在我们有了


    我喜欢UI引导中实现的方式(来自Angular UI团队):

    
    {{alert.msg}
    添加警报
    函数AlertDemoCtrl($scope){
    $scope.alerts=[
    {键入:'error',msg:'Oh snap!更改一些内容,然后再次尝试提交。},
    {键入:'success',msg:'干得好!您已成功读取此重要警报消息。}
    ];
    $scope.addAlert=函数(){
    $scope.alerts.push({msg:“另一个警报!”});
    };
    $scope.closeAlert=函数(索引){
    $scope.alerts.splice(索引1);
    };    
    }
    

    这样,您只需将
    指令添加到您的视图中,就可以开始了-无需创建共享服务或类似的内容。

    创建通知服务并插入controllerit对(1)的回答,但您对(2)有何建议请详细说明您希望在某些场景中实现什么,以及您希望显示什么类型的通知,或发送更新后的帖子,并将其链接到我们当前的变体。如果您不想添加整个UI引导项目依赖项,您至少可以使用相同的设计并编写自己的指令。AlertDemoCtrl应为rootController,否则它将无法用于其他控制器,或者您必须将$scope.alerts和所有这些功能复制到每个控制器
    code there
    
    <div ng-controller="AlertDemoCtrl">
      <alert ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)">{{alert.msg}}</alert>
      <button class='btn' ng-click="addAlert()">Add Alert</button>
    </div>
    
    <script>
    function AlertDemoCtrl($scope) {
      $scope.alerts = [
        { type: 'error', msg: 'Oh snap! Change a few things up and try submitting again.' }, 
        { type: 'success', msg: 'Well done! You successfully read this important alert message.' }
      ];
    
      $scope.addAlert = function() {
        $scope.alerts.push({msg: "Another alert!"});
      };
    
      $scope.closeAlert = function(index) {
        $scope.alerts.splice(index, 1);
      };    
    }
    </script>