getState

возвращает объект реактивного состояния Document Manager

object getState();
objectобъект состояния

Example

// возвращает текущее состояние File manager
const state = $$("fm").getState();
 
// переключает виджет в режим "cards" 
state.mode = "cards";

Related samples

Details

Возвращаемый объект хранит следующие свойства и методы:

{
  mode: "grid",
  selectedItem: [],
  search: "",
  filter: {// конфигурация фильтра},
  path: "/",
  source: "files",
  clipboard: null
}

Свойства

  • mode (string) - режим отображения текущей вкладки ("list" (по умолчанию), "cards" and "double")
  • path (string) - путь к текущей/первоначальной директории
  • source - хранит ID текущей групповой папки ("files" - для "My files", "trash", "favorite", "recent" или "shared"); если source не равен "files", path может быть только "/"
  • selectedItem (array) - хранит массив выбранных элементов
  • search (string) - хранит значение (текст) из поисковой строки
  • filter (object) - хранит конфигурацию фильтра
  • clipboard (object) - хранит данные буфера обмена: { files: [{date: dateValue, id: "/Data.xlsx", size: 55215, type: "document", value: "Data.xlsx"}], mode: "copy"}.

Методы

  • $observe (function) - отслеживает изменения в текущем состоянии Document Manager. Принимает два параметра:
    • prop (string) - реактивное свойство, изменения которого нужно отслеживать;
    • handler (function) - функция, которая выполняется при изменениях. Принимает один аргумент:
      • value (any) - текущее значение реактивного свойства. Тип значения (строка, массив и т.д.) зависит от отслеживаемого свойства.
  • $batch (function) - позволяет задать несколько свойств сразу. Принимает один параметр:
    • props (object) - объект, который содержит пары "имя свойства: значение".

Например, отслеживать изменения в source можно следующим образом:

state.$observe("source", id =>
    $$("sources").setValue(`The current source is "${id}"`)
);

Или задать несколько свойств сразу с помощью $batch:

// переключает виджет в режим "cards" и очищает поле поиска
state.$batch({
    mode: "cards", search: ""
});
Наверх