2.13.7. Module resources

AMD allows defining dependencies in a resource which is loaded by a module basing on a loader plugin.

Loader plugins can load resources thanks to the AMD loading mechanism and benefit from the same performances and parallel loading.

There are some useful loader plugins:

Using configuration in GateIn for AMD loader plugin target resource is straightforward. For example, you want to build some HTML by JavaScript, the text.js AMD loader plugin can address this issue. The plugin will load the template (plugin's resource) and pass it into your module definition callback as a parameter.

  1. Declare text as a GateIn module which is written as a native module depends on a predefined module of RequireJS module. Thanks to the native support mechanism, this configuration works transparently without modifying the third party library.

    
    <module>
      <name>text</name>
      <script>
        <path>/requirejs/js/plugins/text.js</path>
      </script>
      <depends>
        <!-- here module means RequireJS itself -->
        <module>module</module>
      </depends>
    </module>
  2. Define your foo module that needs the text plugin to load the template via the resource XML tag:

    
    <module>
      <name>foo</name>
      ...
      <depends>
        <module>text</module>
        <as>myTemplate</as>
        <resource>/path/to/template.tmpl</resource>
      </depends>
    </module>
  3. Load the template of the foo module by the text plugin:

    (function(myTemplate) {
      //parse the 'myTemplate' then append to DOM
    })(myTemplate);
    
Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus