AMIS低代码填坑(一):API之trackExpression追踪多个数据

AMIS低代码填坑(一):API之trackExpression追踪多个数据_第1张图片

 

跟踪数据自动刷新

since 1.1.6

之前的版本,配置的 api 默认就会具备自动刷新功能,除非显式的配置 autoRefresh: false 来关闭。自动刷新主要通过跟踪 api 的 url 属性来完成的,如果 url 中了使用了某个变量,而这个变量发生变化则会触发自动刷新。 也就说这个 url 地址,既能控制 api 请求的 query 参数,同时又起到跟踪变量重新刷新接口的作用。这个设定大部分情况下都是合理的,但是有时候想要跟踪 url 参数以外的变量就做不到了。所以新增了此属性 trackExpression,显式的配置需要跟踪的变量如:

如果trackExpression 追踪的数据是对象数据,可以使用数据映射的json方法将数据序列化之后再比较,例如"trackExpression": "${fieldToTrack|json}"

文档只有监听一个的例子。遇到的场景需要追踪多个数据变化再更新。

可以这么设置属性

"trackExpression": "${a},${c}"

给个amis官网json例子改改: 

{
  "type": "page",
  "body": {
    "title": "",
    "type": "form",
    "mode": "horizontal",
    "body": [
      {
        "label": "选项1",
        "type": "radios",
        "name": "a",
        "inline": true,
        "options": [
          {
            "label": "选项A",
            "value": 1
          },
          {
            "label": "选项B",
            "value": 2
          },
          {
            "label": "选项C",
            "value": 3
          }
        ]
      },
      {
        "label": "选项3",
        "type": "radios",
        "name": "c",
        "inline": true,
        "options": [
          {
            "label": "选项A",
            "value": 1
          },
          {
            "label": "选项B",
            "value": 2
          },
          {
            "label": "选项C",
            "value": 3
          }
        ]
      },
      {
        "label": "选项2",
        "type": "select",
        "size": "sm",
        "name": "b",
        "source": {
          "method": "get",
          "url": "/amis/api/mock2/options/level2",
          "trackExpression": "${a},${c}"
        },
        "description": "切换选项1的值,会触发选项2source 接口重新拉取"
      }
    ],
    "actions": []
  }
}

AMIS低代码填坑(一):API之trackExpression追踪多个数据_第2张图片

 这就实现了监听两个数据 a和c 变化再更新。发现还有一种方式:

"trackExpression": "${a+c}"

 祝好,帮到你,点赞哈

你可能感兴趣的:(java,开发语言)