3

わかりました、私はこれに本当に苦労しています。解決策を見つけることができるあらゆる場所を探しましたが、同様の質問がかなりあるにもかかわらず、見つかりませんでした。

クラスがあります。必要なインスタンスは 1 つだけなので、サービスを作成しました。

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

ご覧のとおり、ある種のプレーヤーです。曲の変更時にビューを更新する必要があります

これは、問題を明らかにする非常に単純化されたデモ plnk です: http://plnkr.co/edit/L3WndT

そして、これが私がこの質問に基づいて試したことです。解決策はどれも機能しません。

意見

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

最初の1つ

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

二つ目

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

1 に答える 1

0

定期的に更新され、更新イベントをリッスンする方法を提供しない外部サービスを実際に扱っている場合 (Plunker に示されているように)、次のように更新をポーリングしてスコープを同期させることができます。

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

poll メソッドはスコープを明示的に更新する必要がないことに注意してください。Angular は、ビューに埋め込んだ式「serviceClass.prop」にウォッチを作成しました。$timeout サービスはダイジェスト サイクルをトリガーし、式が変更されてビューが更新されるとウォッチ リスナーを起動します。

于 2013-04-14T01:34:32.130 に答える