首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS创建动态模板

AngularJS创建动态模板
EN

Stack Overflow用户
提问于 2016-08-09 13:16:49
回答 1查看 41关注 0票数 0

我目前正在尝试创建某种动态模板,它从两个独立的服务中获取数据和元信息。最后的结果应该是一个显示带有正确标签的数据的表。我的计划是创建具有不同基本设计的HTML-templates,比如有3、4或5列的表。然后,匹配控制器应该从服务中获取元数据,该服务应该返回一个带有属性的id的数组及其应该显示在表中的name。到目前为止还不错,但现在出现了一个棘手的部分:

第二个服务获取模板和元数据的id的匹配数据,以及实际数据匹配的id,以便您能够正确地匹配它们。

以下是plunkr:链接上的代码

主要问题是以下代码:

代码语言:javascript
复制
<tr ng-repeat="person in persons">
   <td>{{person.name}}</td> 
   <td>{{person.age}}</td>
   <td>{{person.postal}}</td>
</tr>  

<td>-tags之间,数据不是动态的,而是静态的。我不想显式地说明我的属性是如何被调用的,而是使用从元服务获取的数据来知道我的属性是如何被调用的。因此,最终,模板应该获得属性的名称以及匹配的数据。你们有什么好办法帮我解决这个问题吗?

编辑

让事情变得更清楚一点:

目前,<td>标记之间的数据是静态的,因为术语{{person.name}}处于硬编码状态。让我们假设数据的结构是,并且将有一个country-attribute而不是postal一个。保持不变的模板仍然试图从person.postal获取数据,而不是从person.country获取数据。因此,undefined甚至是一个错误将是后果。

为了防止出现这种情况,属性的名称应该从元服务中获取并构建在HTML页面中。

工作流看起来应该是这样的:

  1. 获取元数据->获取属性的名称
  2. 设置“HTML”中属性的名称以调用正确的属性
  3. 使用前面定义的属性获取实际数据
  4. 创建表
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 13:34:21

http://jsfiddle.net/Lt024p9h/1/

代码语言:javascript
复制
<div ng-controller="MyCtrl">
  <table border="1">
    <tr ng-repeat="person in persons">
       <td ng-repeat="attr in query.attribs">
         {{person[attr.id]}}
       </td>
    </tr>  
  </table>
</div>

好吧,这是怎么回事?

因此,通过你的小提琴,如果我们得到你想要显示的属性,然后使用对象作为一个相联阵列,我们会做什么。

这需要attr.id和属性匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38851880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档