gpt4 book ai didi

javascript - Controller 在离开时不保留范围

转载 作者:行者123 更新时间:2023-11-28 17:26:50 26 4
gpt4 key购买 nike

我需要帮助。两个问题。

  1. 我的服务最多可以返回三个不同的响应,具体取决于用户单击的按钮。如果用户查看选项 A,然后选择选项 B 或 C,则会调用相同的服务等待响应。但是,如果用户选择选项 A...然后转到选项 B,然后再次返回选项 A,它会强制执行新的 HTTP$ 响应...但我试图返回选项/响应 A 的缓存 View 。如何我可以将每个响应存储在服务或 Controller 中,以便当用户重新选择该选项时,它会从存储/缓存的响应中提取。唯一应该拉取新响应的时间是数据点已更改。

  2. 如果用户离开 Controller 并返回,$scope 将被清除,并且必须再次调用服务(即使数据点没有更改)。我希望服务保留响应,就像上面#1 中一样。

最佳答案

我建议使用缓存机制,而不是专注于保留 SCOPE 或 ROOTSCOPE 变量值的方法。

您可以引用 https://docs.angularjs.org/api/ng/service/$cacheFactory这将为您提供足够的详细信息。

我可以建议以下步骤:

1.在用户第一次访问您的服务时设置缓存(对于每个选项 A、B、C),并将每个响应通过 KEY、VALUE 对映射存储在缓存中。伪代码:

var cache = $cacheFactory('cacheId');
cache.put("ServiceCallForOption-A", "value");
cache.put("ServiceCallForOption-B", "another value for B");
cache.put("ServiceCallForOption-C", "another value for C");
  • 每次再次发出下一个请求时,请从缓存中获取它,而不是从 Controller 中获取它。伪代码:cache.get(key);
  • 希望这有帮助。

    关于javascript - Controller 在离开时不保留范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51369424/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com