为动态更改的对象创建工厂/服务,并将其传递给控制器

时间:2014-09-05 09:05:15

标签: javascript angularjs

我有一个通过socket.io更新的对象。

var my_dynobj;
socket.on('update dynobj', function(dynobj){
    my_dynobj = dynobj;
});

我希望在我的角度应用中将其作为工厂或服务注入,可以作为依赖注入。

在那里,我希望将my_object附加到$scope,以便可以将其插入HTML {{my_object}},并且只要它本身通过套接字在自己的工厂定义中更新就会更新。 socket.on('update object', … 但我无法找到实现这一目标的方法。

angular.module('app', [])
    .factory('dynobj_factory', [
    function(){
        var my_dynobj;
        socket.on('update dynobj', function(dynobj){
            my_dynobj = dynobj;
        });

        return {what?}

    }])
    .controller('ctrl', ['$scope', 'dynobj_factory',
    function($scope, dynobj) {

        $scope.my_dynobj = dynobj.what?

    }])
<div>{{my_dynobj}}</div>

1 个答案:

答案 0 :(得分:1)

对于

return {/* what ? */}

你需要返回类似的内容;

return {dynamicObj: my_dynobj}

这样就可以了。对my_dynobj的任何更改都将反映出注入的所有指令,控制器和工厂。