【发布时间】:2017-04-24 20:59:26
【问题描述】:
我刚刚发现了如何使用存储数组并通过引用将其传递给第二个控制器的服务在控制器之间共享数据。
服务是否有办法保护数组免受第一个控制器的影响,因为该控制器只需将项目传递给服务。该阵列仅由第二个控制器使用。
-
ModalController- 接受来自用户的输入 -
MyService- 从用户那里获取输入并将其存储在一个数组中 - -
ActionController- 引用了 MyService 数组并将其显示在视图上
以上是应用的基本结构。
Here 是它的杰作
【问题讨论】:
-
请提供您要执行的操作的实际代码。代码描述永远不会起作用。目前尚不清楚“隐藏”和“保护”指的是什么。您从谁“保护”这些数据?为什么?
-
对不起,我在编辑的问题中添加了一个 jsfiddle。我想知道是否有办法阻止 ModalCtrl 访问数组。
-
实际上并没有您所说的“保护”概念。 Javascript 中没有私有变量。事物只被上下文隐藏。如果您不希望您的控制器访问该阵列......只是不要访问该控制器中的阵列。
-
如上所述,没有办法做到这一点,我想不出这样做的充分理由。首先解释为什么你需要这样做会有所帮助。如果你不阻止控制器会发生什么?由于该服务具有公共接口,因此任何控制器或任何东西都可以使用
passChore。您可以创建另一个功能有限的服务来包装这个服务并且不公开passChore方法......但是有什么用呢? -
我只是想知道。不是我想做的事情。考虑封装和数据隐藏等概念。我认为由于 ModalCtrl 不需要访问数组,因此最好防止它访问数组。
标签: javascript angularjs model-view-controller angular-services angular-controller