前端:使用与基于 id 的不同表相关的表中的数据

Posted

技术标签:

【中文标题】前端:使用与基于 id 的不同表相关的表中的数据【英文标题】:frontend: using data from table related to a different table based on id 【发布时间】:2021-09-11 03:12:55 【问题描述】:

更新:添加了解决方案。比我想象的要简单。

我有一个使用 API 端点 (/listpotato) 动态创建的表。 此表的 id 为:#potato_list 并返回:

name: 'id', has_sort: true,
name: 'type_id', label: 'potato type id' value: (o)=> ... something goes here... ,
name: 'title', label: 'potato name', has_sort: true, action: (o)=>
                     @enterPage 'potato', o.id 
             ,

我有一个带有端点 (/listpotatotype) 的表,#potatotype_list 并返回:

name: 'id', has_sort: true,
name: 'label', label: 'potato type label' ,
name: 'has_magicPower', label: 'has magic power', is_boolean: true,

我想从#potatotype_list 中显示标签的值(它是一个字符串,并为土豆的类型提供一个文本名称),而不是在#potato_list 中显示type_id 的id 值。我该怎么做?

我知道直接在后端做更直接,但我想,对于这个特定的任务,通过前端做,我显然是个白痴,因为我无法想出一个一整天的有用解决方案。我正在使用coffeeScript(原因太长无法解释)和jQuery,我对这两者的了解真的很短。

我尝试将它映射到 value: type_id 对象的函数内的匿名函数中,但我没有设法从其中的 /potatotype_list 获取数据,所以我一直未定义。

我尝试在返回 /listpotato 后调用 potatotypelist API,但 jquery 给我的是 null / undefined。

    .then () => 
            return @api.listpotatotype() 
    .then (potato_types)=>
            $u = $('#ui_potatoes #potato_list')
            console.log($u)
            $el = $u.find("input[name='type_id']").val()
            console.log($el) 

html

<head>
<script type="text/javascript" src="lib/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="lib/sprintf.min.js"></script>

</head>

<body>
  <div id='ui_potatos' class='ui_page'>
        <h1>Potatos</h1>
        <table id='potato_list' class='ui_block'></table>
  </div>

</body>

Any pointer in the right direction will be greatly appreciated. 

【问题讨论】:

你能显示你的 html 吗?另外,请同时显示异常输出。 嗨@Swati,预期的输出是:(#potatotype_list)中的'label'值,它是一个对象数组,替换#potato_list中的'type_id'值。 你的桌子有input[name='type_id']还是没有?我在你的桌子上没有看到。 可以,但它是通过不同的函数动态创建的。无论如何,我找到了解决方案,将更新我的帖子。感谢您的兴趣。 :) 【参考方案1】:

如果这对其他人有帮助:

#small loop changes type_id in #drop_list to type label 

        potatos_types = await @api.listpotatotype()   
        li = 
        for item in potatos_types then li[item.id]=item.label

然后将其添加到#potato_list:


name: 'id', has_sort: true,
name: 'type_id', label: 'potato type id' value: (o)=> return li[o.type_id] ,
name: 'title', label: 'potato name', has_sort: true, action: (o)=>
                     @enterPage 'potato', o.id ,

【讨论】:

以上是关于前端:使用与基于 id 的不同表相关的表中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQLite 中的表中选择最新的 100 个不同条目?

如何在Laravel中查看外键中的表字段

flask 中的ORM ( 二 )

使用实体框架的表中的相关数据

使用 case 语句根据不同表中的数据显示数据

MySQL 搜索不同的表并且只获取特定的 ID