bsr*_*bsr 4 javascript angularjs
我试图在AngularJS控制器之间共享一些数据.我也通过http请求获取数据.当我从控制器访问数据时,它为空和稍后(如果通过UI手动刷新),则数据可用.我猜这个问题与这里非常相似 但是我在我的案例中尝试过的任何东西都没有用.请看小提琴
http://plnkr.co/edit/6SkzXK?p=preview
所以,在控制器中我得到了数据
//myService.setName(); //commented as it breaks the code
Run Code Online (Sandbox Code Playgroud)
它设定了服务和访问的价值 getName()
它最有可能通过,$rootScope.$apply如上面的链接解决,但我无法使其工作.
Ren*_*des 16
问题是,当您的控制器初始化时,您将getName()的结果复制到变量$scope.name = myService.getName().由于$scope.name持有字符串而不是引用,因此getName()更改时不会更新.
有3种方法可以解决这个问题.
$scope.name = myService.getName并将其用作功能Hello {{name()}}.myService.getName()返回一个像这样的对象{ real_name: "foo" }并name.real_name在视图上使用myService到范围并直接使用getName函数$scope.myService = myService;和视图myService.getName()我更喜欢第一个,给出的更清楚.当你有更多数据时,第二个是好的.第三个不是我的意见的好方法.
| 归档时间: |
|
| 查看次数: |
8290 次 |
| 最近记录: |