ForgeComponents
en

Components

j-View

jComponent 20 · jcomponent@20 component Example loaded with jComponent 20

This component can be helpful for reusable views in intranet apps. The component wraps the view into the isolated scope, and the value according to the component path will be used as a model for the view.


Configuration:

  • url {String} URL address to the view (.html file)
  • cache {String} download cache (default: session)

Usage

app.html:

<ui-component name="view" path="some.path" config="url:view.html"></ui-component>

- you can use an unlimited count of the same views (identifier is URL address)
- each view will have an independent scope/plugin

Example:
<ui-component name="view" path="some.path" config="url:view.html"></ui-component>
<ui-component name="view" path="some.path" config="url:view.html"></ui-component>
<ui-component name="view" path="some.path" config="url:view.html"></ui-component>
<ui-component name="view" path="some.path" config="url:view.html"></ui-component>
<ui-component name="view" path="some.path" config="url:view.html"></ui-component>

view.html:

<div>
	<h1><ui-bind path="?.name" config="text"></ui-bind></h1>
	<button class="exec" data-exec="?/uppercase">To upper-case</button>
</div>

<script>
	// Plugin is optional
	// Name of the plugin is internally generated randomly
	PLUGIN(function(exports) {

		// Optional
		// Is executed only one-time
		exports.init = function(el) {
			// @el {jQuery element}
		};

		exports.uppercase = function() {
			var model = GET('?');
			model.name = model.name.toUpperCase();
			UPD('?.name');
		};

	});
</script>

Use it with <ui-component name="view">. When the component is not loaded yet, jComponent downloads it on first use from the address in DEF.fallback (the Componentator CDN by default). Author: Peter Širka. Source: the Componentator components repository, MIT license.

example.html
<div class="container">
	<div class="row">
		<div class="col-xs-4">
			<ui-component name="view" path="a" config="url:https://cdn.componentator.com/examples/view.html"></ui-component>
		</div>
		<div class="col-xs-4">
			<ui-component name="view" path="b" config="url:[view]"></ui-component>
		</div>
		<div class="col-xs-4">
			<ui-component name="view" path="c" config="url:[view]"></ui-component>
		</div>
	</div>
</div>

<script>

	ENV('view', 'https://cdn.componentator.com/examples/view.html');

	var a = { name: 'Total.js' };
	var b = { name: 'Express.js' };
	var c = { name: 'Meteor.js' };

</script>