# j-DynamicValueList

> Този компонент е много специален компонент. Той може да запази стойности, например брой и в същото време той може да направи друг четещ текст.

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

Този компонент е много специален компонент. Той може да запази стойности, например `Number` и в същото време той може да направи друг четещ `text`. Този компонента е оптимизиран за динамична употреба, така че трябва да бъде свързан с друг компонент или част.


__Конфигуриране__:

- `icon {String}` икона за етикета, например къща, ког и т.н.
- `label {String}` етикет (предварително е HTML съдържание)
- Икона на `icon2 {String}` в дясната кутия, например къща, ковчег и т.н. (предварително: `angle-down`)
- `placeholder {String}` добавя текст на мястото
- `disabled {Boolean}` деактивира този компонент
- `find {String}` __important__ връзка към `function(el, next(value))` за обвързване на нова стойност
- `read {String}` е връзка към `function(array_of_values, next(array_response))` за свързване на прочетена `text`
- `url {String}` се опитва да свърже стойност чрез `AJAX()`, аргументът `{0}` в URL се заменя с стойността
- `html {String}` Tangular шаблон за представяне на стойност (предварително: `{{ name }}`)
- `remap {String}` Функция за поддръжка (дефолт: `null`Примерът е: `value.length ? value[0] : null`
- `required {Boolean}` позволява „необходимо“ (предварително: `false`)
- `bind {String}` - път към метода или променлива, където ще бъде свързана натоварена стойност (опционално)
- `dirsource {String}` е линк към метода `function(search_string, next(items_arr))` или __NEW__: може да съдържа URL за търсене във формата на `GET /api/partners/?q={0}`
- `dircustom {String/Boolean}` може да съдържа път към функцията(val, next(new_val)) или може да бъде Boolean. тази опция може да позволи добавяне на персонализирана стойност (цена, която не е дефинирана в източника на данни)
- `dirrender {String}` пътят към `function(item, text)` (може да се върне HTML за j-Directory), тази функция може да повлияе на списъка с елементи в j-Directory
- `dirminwidth {Number}` Минимална широчина за j-DirectoryЗадължително е: `200`)
- `dirmaxwidth {Number}` Максимална широчина за j-Directory
- `dirplaceholder {String}` Местоположение за j-Directory
- `dirempty {String}` добавя празно поле за j-Directory
- `dirkey {String}` е ключово име за четене на текст в пряк източник (предварително: `name`)
- `dirvalue {String}` е ключово име за четене на стойност в източник (предварително: `id`)
- `key {String}` е основно ключово име (предварително: стойност от `dirvalue`)
- __NEW__ `tapi {Boolean}` позволява повикване на `TAPI()` insteadof `AJAX()` (дефолт: фалшив)

### Използване на AJAX

Ако е `value` След това ще се променят компонентите. `AJAX` Изпратете се автоматично. сървърът трябва да отговори с `Array`.

```html
<ui-component name="dynamicvaluelist" path="path.to.property" config="url:/users/?id={0};dirsource:GET /users/?search={0}"></ui-component>
```

### Интерактивна употреба

Ако `value` се променя, тогава компонентът изпълнява `config.exec` за получаване на честен текст от стойност.

```html
<ui-component name="dynamicvaluelist" path="path.to.property" config="read:my_function"></ui-component>

<script>
	function my_function(arr, next) {
		// the component automatically pairs "response" with "arr"
		next([{ id: 1, name: 'This text will be displayed as a value '}]);
	}
</script>
```

Използвайте го с `<ui-component name="dynamicvaluelist">`Когато компонентът все още не е зареден, jComponent Изтегляне на първия адрес в `DEF.fallback` (След това Componentator Източник: Питър Шерка Componentator Съставни съставки, лиценз на MIT.

```html example.html
<ui-component name="directory"></ui-component>

<div class="m" style="width:300px">
	<ui-component name="dynamicvaluelist" path="common.users" config="read:getusers;dirsource:findusers;placeholder:Add user">Users</ui-component>
</div>

<script>
	var names = [];
	names.push({ id: '1', name: 'Denis' });
	names.push({ id: '2', name: 'Peter' });
	names.push({ id: '3', name: 'Tomáš' });
	names.push({ id: '4', name: 'Lucka' });
	names.push({ id: '5', name: 'Lenka' });

	function getusers(value, next) {
		var temp = [];
		for (var i = 0; i < value.length; i++) {
			var user = names.findItem('id', value[i]);
			user && temp.push(user);
		}
		next(temp);
	}

	function findusers(search, next) {
		var items = names.slice(0);
		next(items);
	}

</script>
```
