# j-DataSource

> Le composant charge les données de la source externe via la méthode AJAX() et lie la valeur en fonction du config.path.

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

Le composant charge les données de la source externe via la méthode `AJAX()` et lie la valeur selon le `config.path`.


__Configuration__ :

- `path {String}` __required__ un chemin où la valeur sera définie
- `url {String}` en option, une adresse URL pour obtenir des données
- `delay {Number}` en option, un délai (en millisecondes) pour l'obtention des données (par défaut : `0`)

__Bon à savoir__ :

- `config.path = '#codelist'` définit une valeur dans les listes de codes `DEF.cl.codelist`
- `config.path = '%codelist'` définit une valeur comme temporaire
- `config.path = '?.path` définit une valeur en fonction du chemin du plugin
- `config.path = 'absolute.path` définit une valeur en fonction du chemin

__Puis-je utiliser une adresse URL dynamique ?__

Oui, vous pouvez utiliser `<ui-component name="datasource" path="..."` pour l'obtention dynamique de données.

```html
<ui-component name="datasource" path="?.urlcities" config="path:#cities"></ui-component>
```

__Comment puis-je modifier les données avant de les lier ?__

```html
<ui-component name="datasource" config="url:https://www.yourdomain.com/api/countries/;path:#countries">
	<script type="text/plain">
		var output = [];
		for (var item of value)
			output.push({ id: item.Id, name: item.Name });
		return output;
	</script>
</ui-component>
```

Utilisez-le avec `<ui-component name="datasource">`. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans `DEF.fallback` (le CDN Componentator par défaut). Auteur : Peter Širka. Source : le référentiel de composants Componentator, licence MIT.

```html example.html
<ui-component name="datasource" config="url:https://www.totaljs.com/dashboard.json;path:#mycodelist">
	<script type="text/plain">
		return value.children;
	</script>
</ui-component>

<ui-bind path="#mycodelist" config="html pre:JSON.stringify(value, null, '  ')" class="block">
	<pre></pre>
</ui-bind>
```
