当前位置: 首页 > 知识库问答 >
问题:

如何使用angularjs呈现需要不同模板(具有不同变量)的混合json结果

柴瀚昂
2023-03-14
[
{"nodeClass":"Entity", "text":"foo","entityfield":"booz"},
{"nodeClass":"User","username":"bar","userfield":"baz"}
]
<div class="{{nodeClass}} capsule">{{entity.text}}:{{entity.entityfield}}</div>
<div class="{{nodeClass}} capsule">{{user.username}}:{{user.userfield}}</div>

您将如何构造代码,以及使用哪些angularjs元素(ng-repeat等)根据“nodelclass”的值使用正确的模板。请记住,我不想创建一个新的条件模板,除非它是唯一的解决方案。

编辑:我已经找到了这些方法:http://onehungrymind.com/angularjs-dynamic-templates/和if else语句在AngularJS模板中和动态显示模板在ng-repeat指令中?但它们与我的要求大相径庭。特别是最后一个是最接近我想要的,但我的模板通常有不同的变量名…

谢谢

共有1个答案

闾丘英悟
2023-03-14

一种方法是使用动态生成的ng-includeurl

HTML

  <div ng-repeat="item in data">
    <div ng-include="getContentUrl(item.nodeClass)"></div>
  </div>

模板

  <script type="text/ng-template" id="partials/Entity.html">
    <h3>Entity Template , text= {{item.text}}</h3>
  </script>
  <script type="text/ng-template" id="partials/User.html">
    <h3>User Template , username ={{item.username}}</h3>
  </script>
app.controller('MainCtrl', function($scope) {
  $scope.data=[{"nodeClass":"Entity", "text":"foo"},{"nodeClass":"User","username":"bar"}];
  $scope.getContentUrl = function(nodeClass){
    return 'partials/'+nodeClass +'.html';
  }
});
 类似资料:
  • 这是我的模板: 这是我的视图模板: 我得到的内容是html,我想在视图中显示,但我得到的只是原始html代码。如何呈现HTML?

  • 最近我做了一个关于现代c的研究。我看到一个视频[在49:00]关于c 11/c 14变量模板。如果你想用不同的模板计算不同类型元组的总和(如,),使用c 11,视频建议一个解决方案: 无法在中推断返回类型,因此必须使用声明返回类型。但有些编译器生成失败,有些编译器生成成功。链接 虽然,使用没有问题,我的问题是: 标准是否涵盖了这个问题?如果没有,编译器是否通过自己的实现来处理这个问题? 为什么最新

  • ...NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径的处理程序方法不明确...

  • 问题内容: 我想解析一个json文件,但它经过这样的事情: 但是大约有三千个这样的对象。我一直在使用Gson解析我的json对象,但是我怎么解析这种文件呢?以及如何检索名称“ CDG”或“ ORY”? 问题答案: 您可以尝试如下操作: 使用gson,您可以按以下方式检索键名: 并使用java- json 可以执行以下操作: 从网址获取json:

  • 问题内容: 我的AngularJS应用程序中有一个页面,我想在其中包含相同的html部分,但具有不同的变量。如果我在我的主要这样做: 而看起来像 两者都会看起来像 我想这与以下事实有关:ng-includes也需要相同的名称。那么,如何将不同的变量发送到每个不同的include? 问题答案: 每次加载新的部分时,传递给的表达式都会求值。在这种情况下,您将值更改为两次,因此在加载两个部分时,当前值将

  • 问题内容: 我使用“消息”界面将消息传递给用户,如下所示: 我想在变量中包含html 并呈现它,而不在模板中转义标记。 问题答案: 如果你不想转义HTML,请查看过滤器和标签: safe: autoescape: