0

我想知道使应用程序的不同部分相互交互的首选方式是什么。

例如,假设我们有一个指令A在用户的购物篮中显示产品。该指令可以访问允许对项目进行 CRUD 操作的持久性服务。

假设我们有一个B显示一般消息的指令。

现在用户决定从他的购物篮中删除一个产品。以这种方式发布事件是否可以接受?:

 $scope.$emit("item-deleted");

然后B监听该类型的事件:

$scope.$on("data-received", function(event, next, current) {
  // show up and tell "item deleted succesfully"       
}); 

这是实现结果的好方法吗?它肯定存在于其他框架和一般的 UI 开发中。我只是想知道这是否是一种可行的方式。

谢谢

4

2 回答 2

1

您应该使用服务而不是事件传播。通过依赖注入,它真的很容易使用。这是让两个控制器相互交谈的最佳方式。

更多关于服务:https ://docs.angularjs.org/guide/services

于 2015-03-02T09:54:49.470 回答
0

为指令 B 创建一个服务,该服务将为一般消息提供数据。将该服务注入指令 A 的底层服务。然后使用适当的消息调用该服务。

由于 angularjs 的 2 路数据绑定,指令 A 应该自动显示这些数据。

于 2015-03-02T09:57:10.717 回答