3

您能否解释一下数据服务的使用与 $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在创建它之后创建一个用于共享分支数据。

4

2 回答 2

5

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

于 2013-11-04T11:28:27.937 回答
5

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

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

于 2013-11-04T11:34:04.097 回答