# j-View

> 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 v

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: en
Content-SHA256: a43f0a7e2d58519b626b00b2e07712a6efcbb2f72f9e6600691a4270107311ef
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

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__:

```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__:

```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.

```html 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>
```
