javascript - AngularJS 数据服务与 $rootScope 事件

标签 javascript angularjs angularjs-scope rootscope

您能否解释一下数据服务的使用与 $rootScope 事件的使用。

我有一个提供编辑功能的 say 分支列表。单击编辑按钮时,我正在使用

广播具有根作用域的事件
$rootScope.$broadcast('EditBranch', branchID);

EditBranch 事件由编辑/创建 Controller 捕获,该 Controller 获取分支详细信息并以适当的编辑格式呈现它。

其他功能是我正在添加一个新分支,我希望它在添加后立即列在现有分支列表中。使用的代码如下

$rootScope.$broadcast('AddBranch', branchData);   //in create controller

$scope.$on('AddBranch', function(e, branchData){  //in listing controller 
    $scope.branches.push(branchData);
});

这样使用$rootScope对吗?或者我应该创建一个 shr​​edService 用于在创建后共享分支数据。

最佳答案

要说一种方法是否优于另一种方法可能并不容易。但是,在这种情况下我会使用共享服务,因为它都是关于操作相同的数据,branch(我想)。 $broadcast$on 更适合应用程序的不同“独立”组件可能正在监听事件并且这些组件中的每一个在事件发生时可能做出不同响应的情况发生。

关于javascript - AngularJS 数据服务与 $rootScope 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766355/

相关文章:

javascript - 超时时显示一条消息,仅两秒钟

javascript - 使用 Three.js 包含图像

javascript - XMLHttpRequest onloadend 事件因错误而未运行

javascript - 如何将 ngOptions 与包含 HTML 实体的字符串一起使用?

javascript - 使用 AngularJS "copy()"来避免引用问题

javascript - AngularJS 与 AngularJS Material 中的范围问题

javascript - Angular .js : model update doesn't trigger view update

javascript - axios 条件参数

javascript - JavaScript 如何处理以点开头的行?

javascript - 取消上传 Angular-evalate