---
title: "Ngx Scorm Wrapper"
description: "ngx-scorm-wrapper is a port of the older AngularJS SCORM wrapper by patamechanix to Angular's dependency-injection model. You add ScormWrapperModule to your imports, inject ScormWrapperService into a component, and call doLMSInitialize, doLMSGetValue and so on without thinking about which global the LMS happened to expose. A version setting of Auto, 1.2 or 2004 decides whether the service binds to window.API or window.API_1484_11, and every call is dispatched through a pair of method names so the rest of your code stays version-agnostic."
canonical_url: "https://scorm-tools.com/tools/ngx-scorm-wrapper"
last_updated: "2026-10-31T10:22:02.910Z"
---

ngx-scorm-wrapper is a port of the older AngularJS SCORM wrapper by patamechanix to Angular's dependency-injection model. You add `ScormWrapperModule` to your imports, inject `ScormWrapperService` into a component, and call `doLMSInitialize`, `doLMSGetValue` and so on without thinking about which global the LMS happened to expose. A `version` setting of `Auto`, `1.2` or `2004` decides whether the service binds to `window.API` or `window.API_1484_11`, and every call is dispatched through a pair of method names so the rest of your code stays version-agnostic.

The design is sound and the version-switching logic is the part worth reading — it is the same problem every SCORM wrapper solves, expressed compactly and with tests. There is a companion demo repository showing a working course.

The problem is age. The last commit is March 2019, the CI badge points at Travis, and the packaging predates the conventions every modern Angular library follows. Three stars and three open issues; nothing has been fixed in seven years and nothing will be.

Read it as a reference for how to bridge Angular's injector to a global browser API, then copy the service into your own project and maintain it yourself. As a dependency in a 2026 Angular application it is not a realistic choice.
