Angular提供程序,数据来自websocket



我想在AngularJS中创建一个从订阅websocket返回数据的提供商(或其他服务)。如何将数据从提供商实时获取到作用域?

示例:

app.provider('MyProvider', function () {
    this.$get = function () {
        var dataFromProvider ;
        ws.subscribe('subscribeTopic', function (data) { 
            var dataFromProvider = data;             
        });
        return {
            dataFromProvider: dataFromProvider
        }       
    }
});

app.controller('myCtrl', function ($scope, MyProvider) {
$scope.myData = MyProvider.dataFromProvider;
});

为Angular构建一个使用RxJS扩展的服务。

app.provider('MyProvider', function () {
    this.$get = function (rx) {
        var subject = new rx.Subject();
        ws.subscribe('subscribeTopic', function (data) { 
             subject.onNext(data);             
        });
        return { subject: subject }; 
    }
});
使用

app.controller("myVm", function($scope, MyProvider) {
    var subscription = MyProvider.subject.subscribe(function(data) {
         $scope.data = data;
    });
    $scope.$on("$destroy", subscription.dispose);
});

rxSubject可以处理多个订阅者,并与所有标准的rxJS过滤器和组合器一起工作。

例如一个使用angular.rx.js的服务,请看PLNKR上的这个DEMO

相关内容

  • 没有找到相关文章

最新更新