我想知道让应用的不同部分互相交互的首选方法是什么。
例如,假设我们有一个指令A
,用于在用户的购物篮中显示产品。该指令可以访问允许对项目进行CRUD操作的持久性服务。
我们还要说我们有一个显示一般信息的指令B
。
现在用户决定从他的购物篮中删除产品。让它以这种方式发布事件是否可以接受?:
$scope.$emit("item-deleted");
然后让B
听取此类事件:
$scope.$on("data-received", function(event, next, current) {
// show up and tell "item deleted succesfully"
});
这是实现结果的好方法吗?它绝对是在其他框架和UI开发中。如果它是一种可行的角度方式,我只是在想它。
由于
答案 0 :(得分:1)
您应该使用服务而不是事件传播。通过依赖注入,它非常易于使用。这是使两个控制器相互通信的最佳方式。
答案 1 :(得分:0)
为指令B创建一个服务,它将为一般消息提供数据。 将该服务注入指令A的底层服务。然后使用正确的消息调用该服务。
指令A应自动显示此数据,因为angularjs的双向数据绑定。