调用远程javascript函数并将其绑定到控制器

时间:2014-02-26 09:20:30

标签: javascript angularjs

我在远程服务器上有一个js文件,就是这样。

function findAllModules() {
    return {
        ModuleNames: [
            'Mandate',
            'AppStore',
            'IdeaMart'
        ]
    };
}

function allServices(moduleName) {
    switch (moduleName) {
        default :
            return {
                serviceNames: [
                    'getPort',
                    'gethost',
                    'getDiscoveryApiTimeout'
                ]
            }
    }
}

function getServiceData(moduleName, serviceName){
    return {
        moduleName : moduleName,
        serviceName : serviceName,
        data : {
            port : 1122
        }
    }
}

function updateServiceData(moduleName, serviceName, data){
    return "Done " + moduleName + serviceName + data
}

我想调用这个文件的getServiceData函数。那应该绑定到a​​ngularjs控制器。我怎样才能完成这件事。

1 个答案:

答案 0 :(得分:1)

如果JavaScript文件将这些函数添加到全局范围,那么您可以将这些全局方法包装在服务中

var app = angular.module('app', []);

app.service('dataService', [function(){

    var getServiceData = function(moduleName, serviceName){
        return window.getServiceData(moduleName, serviceName);
    };

    return {
        getServiceData: getServiceData
    };

}]);

在您的控制器中,您将注入服务

app.controller('myController', ['$scope', 'dataService', function($scope, dataService){

     $scope.serverData = dataService.getServerData('moduleName', 'serviceName');
}]);