Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编写可调用对象的打字脚本_Javascript_Angularjs_Typescript_Factory - Fatal编程技术网

Javascript 编写可调用对象的打字脚本

Javascript 编写可调用对象的打字脚本,javascript,angularjs,typescript,factory,Javascript,Angularjs,Typescript,Factory,我想用typescript编写一个可调用函数 export interface LoadContent { (options:any):ng.IPromise<any>; } export function LoaderService($q:ng.IQService):LoadContent { return (options:any) => { var deferred = $q.defer()

我想用typescript编写一个可调用函数

    export interface LoadContent {
        (options:any):ng.IPromise<any>;
    }

    export function LoaderService($q:ng.IQService):LoadContent {
        return (options:any) => {
            var deferred = $q.defer();
            var data = {
                'TEXT': 'Fooooo'
            };
            deferred.resolve(data);
            return deferred.promise;
        }
    }
app.factory('customLoader', LoaderService);
预期的Javascript:-

app.factory('customLoader', function ($http, $q) {
    return function (options) {
        var deferred = $q.defer();
        var data = {
            'TEXT': 'Fooooo'
        };
        return deferred.resolve(data);
    };
});
我的解决方案是打字脚本

    export interface LoadContent {
        (options:any):ng.IPromise<any>;
    }

    export function LoaderService($q:ng.IQService):LoadContent {
        return (options:any) => {
            var deferred = $q.defer();
            var data = {
                'TEXT': 'Fooooo'
            };
            deferred.resolve(data);
            return deferred.promise;
        }
    }
app.factory('customLoader', LoaderService);
导出接口加载内容{
(选项:任意):ng.I推荐;
}
导出函数LoaderService($q:ng.IQService):LoadContent{
返回(选项:任意)=>{
var deferred=$q.deferred();
风险值数据={
“文本”:“Fooooo”
};
延迟。解析(数据);
回报。承诺;
}
}
应用程序工厂('customLoader',LoaderService);
我计划使用angular.factory对其进行初始化。如果我需要在angular.service中执行相同的操作,我将如何执行此操作

还有没有更好的方法使用typescript类来编写它

如果我需要在angular.service中执行相同的操作,我将如何执行此操作

只需使用一个类

export class LoaderService {
    constructor(public $q:ng.IQService){        }
    getOptions(options:any) {
        var deferred = this.$q.defer();
        var data = {
            'TEXT': 'Fooooo'
        };
        deferred.resolve(data);
        return deferred.promise;
    }
}
app.service('customLoader', LoaderService);
有关此模式的更多信息:

如果我需要在angular.service中执行相同的操作,我将如何执行此操作

只需使用一个类

export class LoaderService {
    constructor(public $q:ng.IQService){        }
    getOptions(options:any) {
        var deferred = this.$q.defer();
        var data = {
            'TEXT': 'Fooooo'
        };
        deferred.resolve(data);
        return deferred.promise;
    }
}
app.service('customLoader', LoaderService);

关于此模式的更多信息:

但是getOptions是LoaderService上的一个成员函数。在我的示例中,我将其作为匿名函数返回。我之所以这样做,是因为第三方库“angular translate”只是将此服务作为依赖项获取,并调用此匿名函数。这是这个图书馆的文件。我如何使用类做类似的事情呢?但是getOptions是LoaderService上的一个成员函数。在我的示例中,我将其作为匿名函数返回。我之所以这样做,是因为第三方库“angular translate”只是将此服务作为依赖项获取,并调用此匿名函数。这是这个图书馆的文件。我如何使用类做类似的事情呢?但是getOptions是LoaderService上的一个成员函数。在我的示例中,我将其作为匿名函数返回。我之所以这样做,是因为第三方库“angular translate”只是将此服务作为依赖项获取,并调用此匿名函数。这是这个图书馆的文件。我如何使用类做类似的事情?