【问题标题】:$watch behaviour depending on promise value$watch 行为取决于承诺值
【发布时间】:2016-08-25 09:00:16
【问题描述】:

我有一个在控制器初始化时调用的函数,该控制器调用$http.get 服务(承诺)。这个承诺从 web 服务中检索项目列表。我在列表分页的属性上也有一个$watch。

我的问题是我在$watch 中所做的事情取决于承诺($watch 没有关注它,列表只加载一次)。所以在加载页面时,webservice被调用,然后$watch(在列表初始化之前),然后我得到了我的承诺的回报。所以 $watch 中发生的事情不是正确的行为。

有没有办法让$watch 等待承诺返回?

【问题讨论】:

  • 将$watch 表达式放入.then 或.done(无论您使用哪个)。你的问题太抽象了。如果我能看到代码,也许我能提供帮助。
  • 您可以在function 中拥有一个手表,并在您的承诺完成时调用该函数,以便它可以注册。
  • 那行得通,对不起这个愚蠢的问题,我不知道为什么我以前没有尝试过。谢谢你们俩

标签: javascript angularjs promise angular-promise watch


【解决方案1】:

最好贴一些代码以获得正确答案。

我建议你应该在分页对象上使用$watchCollection,或者$watch和第三个参数objectEquality = true。

要更新从您的 Web 服务加载的列表,您不应在 Promise 对象上使用 $watch,而应使用 .than() 的 Promise 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-18
    • 2020-02-17
    • 1970-01-01
    • 2017-07-18
    • 2015-11-17
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多