1
我现在有2个指令:如何在服务之间进行双向通信?
<div ng-controller="indexViewModel">
<div class="row">
<searchfilters></searchfilters>
</div>
<div class="row top-buffer">
<searchfields></searchfields>
</div>
</div>
他们都有指定的templateUrl
,并调用处理每一个有项目列表2个独立的服务。
var SearchFiltersService= angular.module('SearchFiltersService', [])
.service('SearchFilters', function() {
this.MyList = [];
return this;
});
var SearchFieldsService= angular.module('SearchFieldsService', [])
.service('SearchFields', function() {
this.MyList = [];
return this;
});
我不想提供太多的代码,因为我想我可能会错误地想到这个问题。我遇到了其他问题的周期性依赖问题。
怎样才可以有2个模板,每个都有一个服务,每个服务可以添加和删除项目(项目作为其唯一的财产只是一个列表),将在其他服务(以及其他的体现视图)?
最佳做法是可能同时拥有您的指令依赖于一个单一的共享服务,而不是两个独立但高度相互依存服务。 –
@DanielBeck我尝试了类似的东西,但服务之间的列表并不完全相同。但是,它们都需要能够修改彼此的列表。这个实例中的单个共享服务是否应该为每个共享服务列出两个列表,并且它们都调用这个服务,这将修改这两个列表? – tic
我想,取决于不同但相关的列表的目的,但通常情况下,您希望尽可能减少组件之间的相关性。如果是“添加到列表A的任何东西也应该添加到列表B”,那么您肯定会希望单个服务管理这两个列表。 –