gpt4 book ai didi

javascript - AngularJS 监视服务变量

转载 作者:行者123 更新时间:2023-12-04 19:36:17 25 4
gpt4 key购买 nike

好吧,我真的很纠结这个问题。我到处寻找解决方案,但没有找到,尽管有很多类似的问题。

我有课。我只需要一个实例,所以我为它做了服务:

services.factory('PlayerService', ->
new Player()
)

如您所见,它是某种播放器。 我需要在歌曲改变时更新我的​​ View

这是一个暴露问题的极其简化的演示 plnk:http://plnkr.co/edit/L3WndT

这是我根据 this question 尝试的结果.所有解决方案均无效。

查看

<div ng-controller="PlayerController">
{{ player.currentSong }}
</div>

第一个

PlayerController = ($scope, PlayerService) ->
$scope.player = PlayerService
return

第二个

PlayerController = ($scope, PlayerService) ->
$scope.$watch(
'myApp.services.PlayerService'
(newval, oldval) ->
$scope.currentSong = newval
true
)
return

最佳答案

如果你真的在处理一些定期更新的外部服务,并且不提供任何方式来监听更新事件(如你的 Plunker 中所示),你可以轮询更新并保持范围同步,如下所示:

http://plnkr.co/edit/PJpQ2a?p=preview

请注意,poll 方法不需要显式更新范围。 Angular 已在您嵌入 View 中的表达式“serviceClass.prop”上创建了一个监视。 $timeout 服务触发摘要循环,当表达式更改并更新 View 时触发监视监听器。

关于javascript - AngularJS 监视服务变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994269/

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