【问题标题】:Replacing Collection's ID with Value in an AngularJS Table用 AngularJS 表中的值替换集合的 ID
【发布时间】:2018-01-03 01:11:41
【问题描述】:

我需要在 AngularJS 表中使用“枚举”的文本值(我在这里使用智能表,但它可以是任何东西)

我的枚举是这样的:var team = { "0": "Alpha", "1": "Beta", "2": "Gamma" };

我的person 就像{id: personId, firstName: "string",..., team: teamId}

这里是my CodePen

所以,从 Person 的一部分我有 teamID,从另一部分我可以得到 Teams json ({ "0": "Alpha", "1": "Beta", "2": "Gamma" })

如何“加入”该信息以在表格中显示团队名称?

更一般地说,问题如下:

我有一个对象集合A,其中包含对象B 的ID。我需要在A 集合表中显示B 名称而不是B Id...

【问题讨论】:

    标签: javascript angularjs html-table smart-table


    【解决方案1】:

    将第 29 行的代码替换为此..

    var mood = moods[Math.round(Math.random()).toString()];
    

    【讨论】:

    • 该代码只会生成假人。在实际项目中,我有一个 ID,而不是字符串,这是问题所在:)
    • id 必须映射到 String 权限。只需添加映射代码或是否可以共享完整场景。
    • 我有一个对象集合A,其中包含对象B 的ID。我需要在A 集合表中显示B 名称而不是B Id...
    • 如果你仔细观察,这就是我所做的。 B["id"] 将返回值。你可以从A那里得到ID。
    • 想象一下,我通过调用外部 API 获得 Person 集合。我无法修改它的结构。 var mood 应该始终是一个 id。我这边可以改造,但是初始值是“0”或者“1”,不是“Alpha”或者“Beta”
    【解决方案2】:

    Ashish 的回答给了我一个解决方案,包括创建带有映射成员的克隆集合......

    vm.persons2 = vm.persons.map(function(p){p.team = teams[p.team]; return p;});
    

    <table ... st-safe-src="vm.persons2" ...>
    

    点赞in the CodePen

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多