Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 余烬把手嵌套每个不工作_Javascript_Ember.js - Fatal编程技术网

Javascript 余烬把手嵌套每个不工作

Javascript 余烬把手嵌套每个不工作,javascript,ember.js,Javascript,Ember.js,以下余烬把手模板渲染第一行,但不渲染嵌套的每一行(或内部的每一行)中的一行 {{{#每个someData.items作为| item}} {{item.fld1}} {{item.fld2}} {{{#每个项目。Reas as{rea}} {{rea}} {{/每个}} {{/每个}} 问题是什么 我使用的是Ember版本1.13很可能,您的问题是您使用的是Ember 2.0或更高版本(基于外部每个循环),因此内部每个循环的格式现在无效(以前已弃用)。另外,两个循环使用相同的变量名item,

以下余烬把手模板渲染第一行,但不渲染嵌套的每一行(或内部的每一行)中的一行


{{{#每个someData.items作为| item}}
{{item.fld1}}
{{item.fld2}}
{{{#每个项目。Reas as{rea}}
{{rea}}
{{/每个}}
{{/每个}}
问题是什么


我使用的是Ember版本1.13

很可能,您的问题是您使用的是Ember 2.0或更高版本(基于外部
每个
循环),因此内部
每个
循环的格式现在无效(以前已弃用)。另外,两个循环使用相同的变量名
item
,无法正常工作

只需使用与外部循环中相同的格式:

更改:

{{#each item in item.Reasons}}
致:


编辑 如果您的
Reas
数组的外观与您在评论中描述的相同:

item.Reas = [null]; // arrays containing a single `null` value
然后,Handlebar将为这些值显示一个空字符串,因为Handlebar将
undefined
null
强制为空字符串

{{reas}} {{!-- if reas is null then an empty string is printed --}
如果要显示
null
undefined
值,可以制作一个简单的帮助程序:

// helpers/show-value.js
import Ember from "ember";

export default Ember.Helper.helper(function(params) {
  let value = params[0];

  if(value === undefined) { return 'undefined'; }
  if(value === null) { return 'null'; }
  return value;

});

编辑2 根据您在评论中的解释:

由于您使用的是Ember 1.13,因此需要一种变通方法来实现这一点。这里有一个方法:

// components/each-keys.js
export default Ember.Component.extend({
  object: null, // passed in object
  items: Ember.computed('object', function() {
    var object = Ember.get(this, 'object');

    var keys = Ember.keys(object);

    return keys.map(function(key) {
      return { key: key, value: object[key]};
    })
  })
})
用法:

{{#each-keys object=item.Reas as |key value|}}
    <tr>
        <td>{{key}}</td>
        <td>{{value}}</td>
    </tr>
{{/each-keys}}

您使用的是哪个余烬版本?您的数据看起来像什么?请记住,Ember不支持嵌套的
@each
观察者。还有,为什么你要使用两种不同的each语法?它的可能副本实际上是不同的thx…我使用的是Ember版本1.13…让我试试你的代码它仍然不能处理更新后的each语句…使用{{each as}语法处理内部/外部的each现在我只是在twiddle中尝试了你的示例代码,它对我有效。以下是链接:。如果它仍然不适用于您,那么您可以在ember twiddle中共享您的代码吗?它使用哪个版本?另外,我的JSON结构略有不同,我想打印对象键本身等等,您的原因数组包含一个元素,它是
null
值?
// components/each-keys.js
export default Ember.Component.extend({
  object: null, // passed in object
  items: Ember.computed('object', function() {
    var object = Ember.get(this, 'object');

    var keys = Ember.keys(object);

    return keys.map(function(key) {
      return { key: key, value: object[key]};
    })
  })
})
{{#each-keys object=item.Reas as |key value|}}
    <tr>
        <td>{{key}}</td>
        <td>{{value}}</td>
    </tr>
{{/each-keys}}
{{#each-in items as |key value|}}
  <p>{{key}}: {{value}}</p>
{{/each-in}}