当前位置: 首页 > 面试题库 >

无法使用Ember JS的Handlebars JS遍历嵌套的JSON数组(大写属性)

韩淇
2023-03-14
问题内容

我正在学习Ember JS和Handlebars JS,所以我对此很陌生。

我在尝试遍历嵌套JSON数组时遇到问题。我无法遍历下面JSON中的“页面”。

这是JSON:

{
    "Pages": [
      {
        "Id": 1,
        "Name": "Page 1",
        "Objects": [
          {
            "Width": 100,
            "Height": 200,
            "Type": "Shape"
          },
          {
            "Width": 150,
            "Height": 250,
            "Type": "Image"     
          }
        ]
      },
      {
        "Id": 2,
        "Name": "Page 2",
        "Objects": [

        ]
      }
    ],
    "Settings": {
        "URL": "http://THEURL",
        "Location": true,
        "Navigation": true
     },
     "Id": 1,
     "Title": "The Title",
     "Description": "The Description"
}

这是我的车把模板:

<script type="text/x-handlebars" id="pages">
<div class="container">
    <div class="row">
        <h1>{{Title}}</h1> <!-- This works -->
        <h2>{{Description}}</h2> <!-- This works -->

        <!-- This doesn't work: -->
        <ul>
        {{#each Pages}}
              <li>Page ID: {{Id}} <br /> Page Name: {{Name}} <br />
                  <ul>
                  {{#each Objects}}
                    <li>{{Type}}</li>
                  {{/each}}
                  </ul>
              </li>
        {{/each}}
        </ul>

    </div>
</div>
</script>

另外,当我只添加:

{{Pages}}

在车把模板中,浏览器中的输出为:

[object Object],[object Object]

我不确定这是否是问题。


问题答案:

大写变量被认为是全局范围,您需要完全限定它们或使其变为小写

http://emberjs.jsbin.com/UhIGevUf/1/edit

<div class="container">
    <div class="row">
        <h1>{{model.Title}}</h1> <!-- This works -->
        <h2>{{model.Description}}</h2> <!-- This works -->

        <!-- This doesn't work: -->
        <ul>
        {{#each page in model.Pages}}
              <li>Page ID: {{page.Id}} <br /> Page Name: {{page.Name}} <br />
                  <ul>
                  {{#each obj in page.Objects}}
                    <li>{{obj.Type}}</li>
                  {{/each}}
                  </ul>
              </li>
        {{/each}}
        </ul>

    </div>
</div>


 类似资料:
  • 问题内容: 我必须遍历json数组对象。 它具有以下结构。 基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。 所以现在我想要的是产品的名称以及它的版本。 问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 javascript 中使用适当的循环结构来对其进行处理。 最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一

  • 问题内容: 我有一个简单的应用程序,它需要遍历一个大型数组(包含约2万个项目),并且在每个数组中,我解析一个子数组。每个项目如下所示: 我正在遍历每个项目。我要做的是首先读取长度,然后简单地遍历整个数组。但这非常慢(例如每秒1个项目)。 有没有优化的方法? 问题答案: 得到它了。多亏了Erwin,我可以一次将整个JSON解析成一个简单的样子: 然后我们可以简单地调用以访问循环中的特定项目:

  • 问题内容: 我目前有这个: test.json看起来像这样: 我越来越: 如何更改它,以便无论我拥有多少嵌套值,它都将循环遍历所有嵌套项目? 所以对于上面的例子,我会得到 问题答案: 您可以创建一个递归循环函数,但是会遇到一个问题:当属性是对象时,因为没有字符串,所以没有文本可显示。因此,您将得到: 因为while 是为项目#2显示的字符串,所以它是为项目#1显示的对象。 无论如何,这就是我组成的

  • 问题内容: 好的,现在我这里有一个无序列表: 基本上,我只想将此数据转换为JSON实体。我想在 Jquery中 完成此操作,而且我觉得我很难过。上面的列表只是一个例子,实际上,我的列表理想情况下将有更多的孩子,并且深度可能是n级(意思是,它将有孙子孙的孙子……或更多)我失去了无数数小时的睡眠,我不认为我会去任何地方:( 我想提取这些东西:锚点内的文本,锚点的url和锚点的标题,并将它们放到JSON

  • 我正在用PHP写作。 我想做的是像Magento2中的可配置产品或Woocommerce中的可变产品。我要求用户输入产品的属性,如颜色、大小等”。 将每个属性视为一个属性类别,其中包含属性,例如“颜色”将具有“红色”、“绿色”、“蓝色”等属性。大小将具有“大”、“小”、“中”等属性。 现在,我需要做一个循环,它接受所有大小、颜色和其他选定的属性,并返回所有可能的配置。同时,要循环的属性数量没有预定

  • 如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段: