Extjs 6.0.2/guides/components/trees
docs.sencha.com/extjs/6.0.2/guides/components/trees.html
Trees
.
.
//ЗДЕСЬ НАДО ДОПОЛНИТЬ НЕДОСТАЮЩИЙ ТЕКСТ
.
Загрузка и сохранение через прокси
Loading and Saving via Proxy
Загрузка и сохранение данных деревьев немного более сложна так-как все данные необходимы для предоставления в древовидном виде. Далее будут описаны принципы работы с данными деревьев.
Loading and saving Tree data is somewhat more complex than dealing with flat data because of all the fields that are required to represent the hierarchical structure of the Tree. This section will explain the intricacies of working with Tree data.
NodeInterface поля
NodeInterface Fields
Первой и самой важной вещью в понимании работы с данными деревьев является понимание работы полей класса NodeInterface.
Каждый узел дерева это просто экземпляр Модели, декорированный полями и методами класса NodeInterface.
The first and most important thing to understand when working with Tree data is how the NodeInterface class' fields work. Every node in a Tree is simply a Model instance decorated with the NodeInterface's fields and methods. Assume for a moment that an application has a Model called «Person». A Person only has two fields — «id» and «name»:
,
,
,
//ЗДЕСЬ НАДО ДОПОЛНИТЬ НЕДОСТАЮЩИЙ ТЕКСТ
,
,
,
,
NodeInterface Fields are Reserved Names
It is important to note that all of the above field names should be treated as «reserved» names. For example, it is not allowed to have a field called «parentId» in a Model if that Model is intended to be used in a Tree, since the Model's field will override the NodeInterface field. The exception to this rule is when there is a legitimate need to override the persistence of a field.
Постоянные и непостоянные поля
Persistent vs Non-persistent Fields
Большинство полей NodeInterface сконфигурированы как непостоянные по умолчанию.
Most of NodeInterface's fields default to persist: false. This means they are non-persistent fields by default. Non-persistent fields will not be saved via the Proxy when calling the TreeStore's sync method or calling save() on the Model. In most cases, the majority of these fields can be left at their default persistence setting, but there are cases where it is necessary to override the persistence of some fields.
The following example demonstrates how to override the persistence of a NodeInterface field. When overriding a NodeInterface field it is important to only change the persist property. The name, type, and defaultValue properties should never be changed.
.
.
.
.
.
Загрузка данных
Loading Data
Имеется два пути загрузки данных дерева. Первый заключается в в том, чтобы настроить прокси таким образом, чтобы он загружал все узлы разом. Для больших деревьев это не самый лучший путь, возможно, будет предпочтительнее использовать второй метод — динамически загружать дочерние узлы для каждого раскрывающегося узла.
There are two ways to load Tree data. The first is to for the proxy to fetch the entire Tree all at once. For larger Trees where loading everything at once is not ideal, it may be preferable to use the second method — dynamically loading the children for each node when it is expanded.
Loading the Entire Tree
Internally, the Tree only loads data in response to a node being expanded. However the entire hierarchy can be loaded if the proxy retrieves a nested object containing the whole Tree structure. To accomplish this, initialize the TreeStore's root node to expanded:
Trees
.
.
//ЗДЕСЬ НАДО ДОПОЛНИТЬ НЕДОСТАЮЩИЙ ТЕКСТ
.
Загрузка и сохранение через прокси
Loading and Saving via Proxy
Загрузка и сохранение данных деревьев немного более сложна так-как все данные необходимы для предоставления в древовидном виде. Далее будут описаны принципы работы с данными деревьев.
Loading and saving Tree data is somewhat more complex than dealing with flat data because of all the fields that are required to represent the hierarchical structure of the Tree. This section will explain the intricacies of working with Tree data.
NodeInterface поля
NodeInterface Fields
Первой и самой важной вещью в понимании работы с данными деревьев является понимание работы полей класса NodeInterface.
Каждый узел дерева это просто экземпляр Модели, декорированный полями и методами класса NodeInterface.
The first and most important thing to understand when working with Tree data is how the NodeInterface class' fields work. Every node in a Tree is simply a Model instance decorated with the NodeInterface's fields and methods. Assume for a moment that an application has a Model called «Person». A Person only has two fields — «id» and «name»:
,
,
,
//ЗДЕСЬ НАДО ДОПОЛНИТЬ НЕДОСТАЮЩИЙ ТЕКСТ
,
,
,
,
NodeInterface Fields are Reserved Names
It is important to note that all of the above field names should be treated as «reserved» names. For example, it is not allowed to have a field called «parentId» in a Model if that Model is intended to be used in a Tree, since the Model's field will override the NodeInterface field. The exception to this rule is when there is a legitimate need to override the persistence of a field.
Постоянные и непостоянные поля
Persistent vs Non-persistent Fields
Большинство полей NodeInterface сконфигурированы как непостоянные по умолчанию.
Most of NodeInterface's fields default to persist: false. This means they are non-persistent fields by default. Non-persistent fields will not be saved via the Proxy when calling the TreeStore's sync method or calling save() on the Model. In most cases, the majority of these fields can be left at their default persistence setting, but there are cases where it is necessary to override the persistence of some fields.
The following example demonstrates how to override the persistence of a NodeInterface field. When overriding a NodeInterface field it is important to only change the persist property. The name, type, and defaultValue properties should never be changed.
.
.
.
.
.
Загрузка данных
Loading Data
Имеется два пути загрузки данных дерева. Первый заключается в в том, чтобы настроить прокси таким образом, чтобы он загружал все узлы разом. Для больших деревьев это не самый лучший путь, возможно, будет предпочтительнее использовать второй метод — динамически загружать дочерние узлы для каждого раскрывающегося узла.
There are two ways to load Tree data. The first is to for the proxy to fetch the entire Tree all at once. For larger Trees where loading everything at once is not ideal, it may be preferable to use the second method — dynamically loading the children for each node when it is expanded.
Loading the Entire Tree
Internally, the Tree only loads data in response to a node being expanded. However the entire hierarchy can be loaded if the proxy retrieves a nested object containing the whole Tree structure. To accomplish this, initialize the TreeStore's root node to expanded:
0 комментариев