我创建了一个工厂来使用$resource调用Rest服务。工厂函数在我的代码中有多个地方使用,它基于我需要用于不同回调的用法。我想创建一个工厂函数实现的独立实现,我可以在代码的其他部分中重用它。
以下是所需的详细信息:
工厂:
app.factory('UnLockFile', function ($resource) {
return $resource('/api/files/:fileid/checkin',
{fileid:'@id'},
{unlock: {method:'PUT', isArray:false}}
);
});
其他工厂的工厂重复使用(已编辑:现在工作正常)
app.factory('FileImplementation', [ 'UnLockFile',
function(UnLockFile){
var FileImplementation=
{
unLockFile : function (userId, fileId, unlockFileCallback)
{
//Create Unlock object
var unLockFileObj = new UnLockFile({ userid: userId });
//make server call to lock the file
unLockFileObj.$unlock({fileid: fileId }, function(response){
//invoke callback
unlockFileCallback(response);
});
}
};
return FileImplementation;
}
]);
应用程序代码(这在Angular范围内;使用指令):
scope.filemodel = FileImplementation;
scope.filemodel.unLockFile(userId, fileId, unlockFileCallback);
请帮忙。
根据Charlie的建议,我创建了一个单独的工厂,实现了单独的工厂操作,然后将这个新工厂注入控制器和使用它的指令中。发布它来结束这个问题。以下是这家工厂的样品。
app.factory('FileImplementation', [ 'UnLockFile', 'LockFile', 'FileEditSession', function(UnLockFile , LockFile, FileEditSession){
var FileImplementation=
{
//Unlock file
unLockFile : function (userId, fileId, unlockFileCallback)
{
//Create Unlock object
var unLockFileObj = new UnLockFile({ userid: userId });
//make server call to lock the file
unLockFileObj.$unlock({fileid: fileId }, function(response){
//invoke callback
unlockFileCallback(response);
});
}
};
return FileImplementation;
}
]);