Javascript 构建角度服务以促进跨指令的数据共享

Javascript 构建角度服务以促进跨指令的数据共享,javascript,angularjs,oop,Javascript,Angularjs,Oop,我有两个指令——称它们为“mainPane”和“sidePane”,每个指令都显示一个项目列表。这两个列表的内容经常重叠-即两个列表中显示相同的项目-用户可以与任一列表中的项目交互。当用户在一个列表中更改某个项目时,我希望它立即反映在另一个列表中。这是我的主要要求 我非常确定我想将所有项目存储在内容服务中,在这里我还将封装(AJAX)检索逻辑 我所寻找的是关于从那里构建服务的最佳方式的高级建议。它是否有两个单独的列表,每个窗格一个?如果是这样,我该如何处理这两个文件中存在的项目?将所有项存储在一

我有两个指令——称它们为“mainPane”和“sidePane”,每个指令都显示一个项目列表。这两个列表的内容经常重叠-即两个列表中显示相同的项目-用户可以与任一列表中的项目交互。当用户在一个列表中更改某个项目时,我希望它立即反映在另一个列表中。这是我的主要要求

我非常确定我想将所有项目存储在
内容
服务中,在这里我还将封装(AJAX)检索逻辑

我所寻找的是关于从那里构建服务的最佳方式的高级建议。它是否有两个单独的列表,每个窗格一个?如果是这样,我该如何处理这两个文件中存在的项目?将所有项存储在一个数组中并对其进行过滤以生成两个单独的列表很有吸引力,但不幸的是,这些项没有固有的属性来决定它们应该出现在哪个列表中。不过,我可以做一个,我可以在这些对象中添加一个
onMainPane
onSidePane
字段,并对其进行过滤。这是最好的方法吗?如果是的话,我应该在服务或指令中进行过滤吗


还是有更好的选择

既然您已经为封装创建了
内容
服务,那么利用它将是合乎逻辑的<代码>内容
服务可以注入指令并共享列表


话虽如此,名单会有多大?指令/内容项有多复杂?如果对象/指令复杂且列表较大,则服务路线可能不合适。

使用数据样本更容易评估。很难在不知道数据关系是什么的情况下构建数据服务。不过,像您提到的用于过滤的
窗格
属性肯定会让您的生活更简单