【发布时间】:2016-08-03 00:52:10
【问题描述】:
在我的 angularjs 应用程序中,我使用工厂来存储值并在控制器之间共享它们。但是我遇到了一个特殊的问题。
以下是我的工厂:
factory.quoteLinks = {allLinks : [], allLeftLinks :[], curSection : "-1", insType: "-1", test:"-1"};
factory.setQuoteLinks = function(qlinks, qleftLinks, qsubLink, qinsuranceType, testVal) {
factory.quoteLinks = { allLinks : qlinks, allLeftLinks : qleftLinks, curSection: qsubLink, insType: qinsuranceType, test:testVal};
};
factory.getQuoteLinks = function() {
return factory.quoteLinks;
};
据我所知,只有当我调用factory.setQuoteLinks 时,这些值才会存储在factory.quoteLinks 中。因此,每当我明确调用factory.setQuoteLinks 时,这些值都会正确存储。在调试代码的剩余部分一段时间后,在调试期间,我注意到即使我没有调用factory.setQuoteLinks,factory.quoteLinks 中的allLinks 的值也被修改为其他一些值,我无法弄清楚即使我没有在该特定点调用factory.setQuoteLinks 来修改allLinks,这也是从那里得到修改的。我有没有可能跟踪工厂中的这个值是从哪里修改的,我的意思是修改的原因?我离开时不知道如何解决?
【问题讨论】:
-
如果
factory.getQuoteLinks()的消费者正在/正在修改集合,则这些更改将在factory.quoteLinks引用的对象上进行。
标签: angularjs angularjs-scope angularjs-service angularjs-factory