在我的Angular控制器中,我有:
...
justNowSrv.queue.push(goal);
}
justNowSrv.start();
$scope.$on("$destroy", function() {
justNowSrv.reset();
});
在我的服务中,我有:
var queue = [];
function setDefault() {
queue.forEach(function(goal) {
goal.justNow = false;
});
queue.length = 0;
}
function reset() {
setDefault();
$interval.cancel(justNowLoopCheck);
}
return {
reset: reset,
start: start,
queue: queue
};
来自queue
的{{1}}数组被引用正常,因为我justNowSrv.queue
并且我在处理服务中的目标对象时没有任何问题。
当我离开控制器并返回时,justNowSrv.queue.push(goal);
运行。这打破了内存映射,因为之后推送到queue.length = 0;
会产生不同的行为。
我一直认为queue
会保留数组内存引用。这不是这样吗?
如果我使用对象array.length = 0
,var queue = { toRemove: [] };
等,我可以修复该行为。