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;