Javascript 如何从angular service factory创建动态文件资源?

Javascript 如何从angular service factory创建动态文件资源?,javascript,angularjs,Javascript,Angularjs,是否可以拥有动态文件资源 这是我的工厂 factory('fileResourcedc', function ($resource) { var FileResourcedc = $resource( 'xml/file.json',{}, { get:{method:'GET', isArray:false} } );

是否可以拥有动态文件资源

这是我的工厂

factory('fileResourcedc', function ($resource) {
    var FileResourcedc = $resource(
                'xml/file.json',{},
                {
                    get:{method:'GET', isArray:false}
                }
            );
    return FileResourcedc;
})  
我在这里称之为:

    var deferred = $q.defer();
    var successFn = function (result) {
        if (angular.equals(result, [])) {
            deferred.reject("Failed  because empty : " + result.message);
        }
        else {
            deferred.resolve(result);
        }
    };
    var failFn = function (result) {
       deferred.reject("Failed dataconfResponse");
    };
    fileResourcedc.get(successFn, failFn);
    return deferred.promise;
请注意,在我的工厂中,文件名是硬编码的:

'xml/file.json'
我需要的是创建一个filename参数并将其传递给factory service。可能吗

Thaks Prevance

这是我的解决方案:

factory('fileResourcedc', function ($resource) {
    var FileResourcedc = $resource(
                'xml/:myFile',
                {},
                {
                    get:{method:'GET', params:{myFile:""}, isArray:false}
                }
            );
    FileResourcedc.prototype.getCatalogue = function (fileName, successCat, failCat) {
        return FileResourcedc.get({myFile:fileName}, successCat, failCat);

    };
    return new FileResourcedc;
})
电话:


谢谢

只需为文件名创建一个服务(如文件名提供程序),并通过工厂定义将其注入资源中。编辑:如果动态的话,你的资源服务应该是一个方法而不是一个对象
fileResource.getResource().get(…)
@mpm谢谢,这是一个好方法。
        var deferred = $q.defer();
        var successFn = function (result) {
            if (angular.equals(result, {})) {
                deferred.reject("No catalogue");
            }
            else {
                deferred.resolve(result);
            }
        };
        var failFn = function (result) {
           deferred.reject("Failed catalogue");
        };
        fileResourcedc.getCatalogue("catalogues.json",successFn, failFn);
        return deferred.promise;