Angulajs依赖注入到组件

时间:2016-03-03 22:34:56

标签: jquery angularjs dependency-injection signalr

是否可以在angularjs中对组件进行依赖注入

我有signalR hub工厂。我想注入我的SingalR集线器代理。

我有以下代码,我在创建ngTable组件,这需要由SignalRhub动态更新,所以我需要注入signalRHubProxy。我怎么能得到这个。

组件

function ngTableController($scope, $element, $attrs)
{
}
app.component('ngTable', {
    templateUrl: '/app/components/ngTable.html',
    controller: ngTableController,


});

工厂

'use strict';

app.factory('signalRHubProxy', ['$rootScope', 'signalRServer',
    function ($rootScope, signalRServer) {

        function signalRHubProxyFactory(serverUrl, hubName, startOptions) {
            var connection = $.hubConnection(signalRServer);
            var proxy = connection.createHubProxy(hubName);
            connection.start(startOptions).done(function () { });

            return {
                on: function (eventName, callback) {
                    proxy.on(eventName, function (result) {
                        $rootScope.$apply(function () {
                            if (callback) {
                                callback(result);
                            }
                        });
                    });
                },
                off: function (eventName, callback) {
                    proxy.off(eventName, function (result) {
                        $rootScope.$apply(function () {
                            if (callback) {
                                callback(result);
                            }
                        });
                    });
                },
                invoke: function (methodName, callback) {
                    proxy.invoke(methodName)
                        .done(function (result) {
                            $rootScope.$apply(function () {
                                if (callback) {
                                    callback(result);
                                }
                            });
                        });
                },
                connection: connection
            };
        };

        return signalRHubProxyFactory;
}]);

1 个答案:

答案 0 :(得分:0)

抱歉,

我在追踪和错误方法后得到了答案

app.component('ngTable', {
    templateUrl: '/app/components/ngTable.html',
    controller: ['$scope', '$element', '$attrs', 'signalRHubProxy', ngTableController]


});