具体来说,我正在使用~800行SCORM API包装程序库,它有助于与LMS进行通信。作者没有在Angular中写它。遗留的vanilla js文件(index.js)已经包含在其中,我包括两个片段,以便了解这里使用的结构。
SCORM = { //Define the SCORM object
version: null, //Store SCORM version.
handleCompletionStatus: true, //Whether or not the wrapper should automatically handle the initial completion status
handleExitMode: true, //Whether or not the wrapper should automatically handle the exit mode
API: { handle: null,
isFound: false } //Create API child object
};
SCORM.API.get = function(){ //implementation};
SCORM.API.set = function(){ //implementation};
除此之外,还有一个在全球范围内执行的遗留javascript文件。
index.js
var scorm = SCORM;
var interval;
var channel;
function init(){
scorm.version
}
function get(params){
var values;
values = getFromLMS(params);
return values;
}
function set(param, value){
return scorm.set(param, value);
return callSucceeded;
}
我正在Angular中编写一个绿地应用程序,但我想在我的架构中利用一些现有的外部库。我真的想暴露index.js'作为Angular服务的功能,无需完全重写它。
如果我要给你上面提到的两个javascript文件和一个具有以下结构的新services.js文件
'use strict';
var learnerServices = angular.module('learnerServices', []);
learnerServices.factory('learner-service' [
function(){
});
}
]);
你将如何注入" get"和"设置"函数从index.js到学习者服务的$范围?
答案 0 :(得分:1)
希望我能正确地解释你的问题......
'use strict';
var learnerServices = angular.module('learnerServices', []);
learnerServices.factory('scormService' [
function() {
var scorm = SCORM;
var interval;
var channel;
function init(){
scorm.version
}
function get(params){
var values;
values = getFromLMS(params);
return values;
}
function set(param, value){
return scorm.set(param, value);
return callSucceeded;
}
return {
scorm: scorm,
interval: interval,
channel: channel,
init: init,
get: get,
set: set
}
});
]);
learnerServices.factory('learnerService' ['scormService'
function(scormService){
scormService.get('some param');
});
]);