【问题标题】:AngularJS Data service vs $rootScope eventsAngularJS 数据服务与 $rootScope 事件
【发布时间】:2013-11-14 23:46:58
【问题描述】:

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

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

广播具有根范围的事件
$rootScope.$broadcast('EditBranch', branchID);

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

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

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

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

这样使用$rootScope对吗。或者我应该在创建后创建一个shredService 来共享分支数据。

【问题讨论】:

    标签: javascript angularjs angularjs-scope rootscope


    【解决方案1】:

    很难说一种方法是否比另一种更好。但是,在这种情况下,我会使用共享服务,因为这完全是为了处理相同的数据,branch(我想)。 $broadcast$on 更适合应用程序的不同“独立”组件可能正在侦听事件并且这些组件中的每一个在事件发生时可能会做出不同响应的情况。

    【讨论】:

      【解决方案2】:

      Service 是一个 Singleton,您可以注入任何控制器并在控制器范围内调用 getter/setter 服务值。

      我认为使用服务可以更好地控制数据并且可以使代码更清晰。

      【讨论】:

      • 我认为服务是更好的选择,它还允许将逻辑封装到具有相关控制器、指令等的模块(分支)中,然后将其注入任何控制器(@MaximShoustin)跨度>
      猜你喜欢
      • 2013-04-26
      • 1970-01-01
      • 2015-04-01
      • 2015-09-06
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      相关资源
      最近更新 更多