开发者社区 > 云原生 > 容器服务 > 正文

自定义页面包裹在布局容器循环数据里的组件如何使用函数

已解决

自定义页面使用的输入框组件A放在布局容器里,用/v1/form/searchFormDatas.json引用另一个底表的数据源,组件A用item.formData.*** 绑定绑定数据源底表ID,容器循环数据绑定state.getData.data。

在自定义页面,设置另一个输入框B,希望设置B的数据为A的2倍,在didMount中建立公式: const aaa= this.$(A组件ID).getValue(); this.$(B组件ID).setValue(aaa*2)

但是测试该表达式没有反应。 如果A组件不在容器中,不绑定数据源变量,该公式会有反应。因此是不是绑定数据源变量的组件采用这个模式搞函数关系是不是不行?那么绑定数据源变量的组件如何使用JS关系表达?

展开
收起
游客as6kdbzxuw7hy 2023-02-19 10:26:08 635 0
1 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。
    采纳回答

    循环数据要求是数组结构,字符串数组、数字数组或者对象数组都可以。

    静态循环数据 「循环数据」定义一个静态数组,在循环体里,可以通过 this.item 获取循环值,this.index 获取循环下标。当然,item / index 也可以通过编辑「循环参数」来自定义,比如 content / idx。

    循环远程数据源, 创建一个远程数据源,将数据源绑定到循环变量上,需要定义远程数据源和将组件的循环数据绑定到该数据源上。

    还可以实现内外两层嵌套循环,以此类推,其实 N 层(N < Infinity)也是支持的。 通常对于两个组件搭配到一起应用嵌套循环时,会在外层包裹一层容器组件,在容器组件上设置外层循环数据,在内部的组件(此例为文本组件)设置内层循环数据。

    外层循环值用的是 this.item,而内层用的是 this.content,这是故意这样设置(通过编辑内层的「循环参数」),为了在内层也能拿到外层的值,否则两个都是 this.item,内层会将外层屏蔽。

    在整个搭建页面中,this 其实是有层级的,当前作用域是 this,父级作用域是 this.$super,顶级作用域是 this.$top。

    比如对表单容器做循环渲染,表单标识为 'fooForm',在 循环体 里使用 this.$('fooForm').getValue() 可以拿到当次循环表单的值,若要获取所有循环表单的值,需要通过 this.$super.$('fooForm').map(item => item.getValue())。

    以上仅供参考。

    2023-02-19 14:15:06
    赞同 2 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
使用CNFS搭建弹性Web服务 立即下载
阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
何种数据存储才能助力容器计算 立即下载