Container

Stratox also comes with a specialized JavaScript container library designed for seamless communication between template views and the application. It allows for efficient data exchange.

Access container

A new container instance will be binded to each Stratox class instance. You can then access the container instance both inside a component and outside of it.

1. Inside component

export function custom({ services })
{
    if (services.has("fallback")) {
        services.get("fallback");
    }
    ...

2. Outside of component

const stratox = new Stratox("#ingress");
const serviceContainer = stratox.container();

Container usage

Bellow is some quick example on different ways you can use the container.

// Example 1
serviceContainer.set("someObject", { test: "Container 1" });

console.log(serviceContainer.get("someObject").test);
// Log response: Container 1

// Example 2
serviceContainer.set("passingAFunction", function(arg1, arg2) {
	alert(arg1+" "+arg2);
});

serviceContainer.get("passingAFunction", "Hello", "world!");
// Alert response: Hello world!

Stand alone

You can also use the container in other projects.

import { StratoxContainer } from 'stratox/StratoxContainer';
const container = new StratoxContainer();

Method list

Set a container or factory

set(key, value, overwrite);
  • key: Unique container key/string identifier

  • value: Mixed value of whatever you want to share, e.g. String, number, object, function.

  • overwrite: Attempting to set a container multiple times will trigger a warning unless manual consent is provided by setting "overwrite" to true.

Set factory only

setFactory(key, value, overwrite);
  • key: Unique factory key/string identifier

  • value: callable

  • overwrite: Attempting to set a container multiple times will trigger a warning unless manual consent is provided by setting "overwrite" to true.

Get a container or factory

get(key, ...args);
  • key: Unique container key/string identifier

  • args: pass arguments to possible factory/function

Check if container/factory exists

has(key);
  • key: Unique container key/string identifier

Check if is strict a "container".

isContainer(key);
  • key: Unique container key/string identifier

Check if is strict a "factory/function".

isFactory(key);
  • key: Unique factory key/string identifier

Last updated