【问题标题】:Structuring angular service to facilitate data sharing across directives构建角度服务以促进跨指令的数据共享
【发布时间】:2015-03-04 03:32:15
【问题描述】:

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

我相当确定我想将我的所有项目存储在Content 服务中,我还将在其中封装(AJAX)检索逻辑。

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

或者有更好的选择吗?

【问题讨论】:

  • 使用数据样本会更容易评估。很难在不知道数据关系是什么样的情况下构建数据服务。你提到的某种pane 属性肯定会让你的生活更简单

标签: javascript angularjs oop


【解决方案1】:

由于您已经为封装创建了Content 服务,因此利用它是合乎逻辑的。可以将Content 服务注入指令并共享列表。

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

【讨论】:

    猜你喜欢
    • 2015-06-10
    • 1970-01-01
    • 2019-11-19
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多