gpt4 book ai didi

javascript - AngularJS - 使用异步响应更新范围值

转载 作者:搜寻专家 更新时间:2023-11-01 04:47:33 24 4
gpt4 key购买 nike

我正在尝试在 AngularJS Controller 之间共享一些数据。我也通过http请求获取数据。当我从 Controller 访问数据时,它为空,稍后(如果通过 UI 手动刷新),数据可用。我猜这个问题与 here 非常相似但无论我在我的案例中尝试过什么,都没有用。请看 fiddle

http://plnkr.co/edit/6SkzXK?p=preview

因此,在 Controller 中我通过以下方式获取数据

//myService.setName(); //commented as it breaks the code

通过getName()设置service和access中的值

它很可能可以通过 $rootScope.$apply 解决,就像上面的链接一样,但我无法让它工作。

最佳答案

问题在于,当您的 Controller 初始化时,您将 getName() 的结果复制到变量 $scope.name = myService.getName()。由于 $scope.name 持有一个字符串而不是一个引用,因此当 getName() 更改时它不会更新。

有 3 种方法可以解决这个问题。

  1. 制作 $scope.name = myService.getName 并将其用作函数 Hello {{name()}}
  2. myService.getName() 返回一个像 { real_name: "foo"} 的对象并在 View 上使用 name.real_name
  3. myService 绑定(bind)到范围并直接使用 getName 函数 $scope.myService = myService; 和 View myService。 getName()

我更喜欢第一种,给出的更清晰。当您有更多数据时,第二个很好。在我看来,第三种方法不是一个好方法。

关于javascript - AngularJS - 使用异步响应更新范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12502237/

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