logologo
Get Started
Tutorials
Guide
Development
Plugins
API
Home
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Get Started
Tutorials
Guide
Development
Plugins
API
Home
logologo
RunJS Overview
Importing Modules
Rendering in Container

Global Variables

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.exitAll()
Next Pagectx.form

#ctx.filterManager

The Filter Connection Manager is used to manage the filter associations between filter forms (FilterForm) and data blocks (tables, lists, charts, etc.). It is provided by BlockGridModel and is only available within its context (e.g., filter form blocks, data blocks).

#Use Cases

ScenarioDescription
Filter Form BlockManages connection configurations between filter items and target blocks; refreshes target data when filters change.
Data Block (Table/List)Acts as a filter target, binding filter conditions via bindToTarget.
Linkage Rules / Custom FilterModelCalls refreshTargetsByFilter within doFilter or doReset to trigger target refreshes.
Connection Field ConfigurationUses getConnectFieldsConfig and saveConnectFieldsConfig to maintain field mappings between filters and targets.

Note: ctx.filterManager is only available in RunJS contexts that have a BlockGridModel (e.g., within a page containing a filter form); it is undefined in regular JSBlocks or independent pages. It is recommended to use optional chaining before access.

#Type Definitions

filterManager: FilterManager;

type FilterConfig = {
  filterId: string;   // Filter model UID
  targetId: string;   // Target data block model UID
  filterPaths?: string[];  // Field paths of the target block
  operator?: string;  // Filter operator
};

type ConnectFieldsConfig = {
  targets: { targetId: string; filterPaths: string[] }[];
};

#Common Methods

MethodDescription
getFilterConfigs()Gets all current filter connection configurations.
getConnectFieldsConfig(filterId)Gets the connection field configuration for a specific filter.
saveConnectFieldsConfig(filterId, config)Saves the connection field configuration for a filter.
addFilterConfig(config)Adds a filter configuration (filterId + targetId + filterPaths).
removeFilterConfig({ filterId?, targetId?, persist? })Removes filter configurations by filterId, targetId, or both.
bindToTarget(targetId)Binds the filter configuration to a target block, triggering its resource to apply the filter.
unbindFromTarget(targetId)Unbinds the filter from the target block.
`refreshTargetsByFilter(filterIdfilterId[])`

#Core Concepts

  • FilterModel: A model providing filter conditions (e.g., FilterFormItemModel), which must implement getFilterValue() to return the current filter value.
  • TargetModel: The data block being filtered; its resource must support addFilterGroup, removeFilterGroup, and refresh.

#Examples

#Add Filter Configuration

await ctx.filterManager?.addFilterConfig({
  filterId: 'filter-form-item-uid',
  targetId: 'table-block-uid',
  filterPaths: ['status', 'createdAt'],
  operator: '$eq',
});

#Refresh Target Blocks

// In doFilter / doReset of a filter form
ctx.filterManager?.refreshTargetsByFilter(ctx.model.uid);

// Refresh targets associated with multiple filters
ctx.filterManager?.refreshTargetsByFilter(['filter-1', 'filter-2']);

#Connection Field Configuration

// Get connection configuration
const config = ctx.filterManager?.getConnectFieldsConfig(ctx.model.uid);

// Save connection configuration
await ctx.filterManager?.saveConnectFieldsConfig(ctx.model.uid, {
  targets: [
    { targetId: 'table-uid', filterPaths: ['status'] },
    { targetId: 'chart-uid', filterPaths: ['category'] },
  ],
});

#Remove Configuration

// Delete all configurations for a specific filter
await ctx.filterManager?.removeFilterConfig({ filterId: 'filter-uid' });

// Delete all filter configurations for a specific target
await ctx.filterManager?.removeFilterConfig({ targetId: 'table-uid' });

#Related

  • ctx.resource: The target block's resource must support the filter interface.
  • ctx.model: Used to get the current model's UID for filterId / targetId.