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
Ember.js中的可枚举对象(键值映射)_Ember.js_Ember Data - Fatal编程技术网

Ember.js中的可枚举对象(键值映射)

Ember.js中的可枚举对象(键值映射),ember.js,ember-data,Ember.js,Ember Data,Ember中是否有支持Ember.Array/Ember.Enumerable的键值对象 我想在我的把手模板中用{{{each}}对它们进行迭代 我的用例显示来自服务器的任意JSON(用户定义字段)(下面给出的示例)。我可以从嵌套数组递归创建视图(使用eachhelper),但不能迭代对象。我的计划是找到(或编写)一个对象,该对象将包装JSON对象并允许它们可枚举。这样做的最佳方式是什么 到目前为止,我的想法是将扩展/混合Enumerable/Array/ArrayProxy/ObjectPro

Ember中是否有支持Ember.Array/Ember.Enumerable的键值对象

我想在我的把手模板中用
{{{each}}
对它们进行迭代

我的用例显示来自服务器的任意JSON(用户定义字段)(下面给出的示例)。我可以从嵌套数组递归创建视图(使用
each
helper),但不能迭代对象。我的计划是找到(或编写)一个对象,该对象将包装JSON对象并允许它们可枚举。这样做的最佳方式是什么

到目前为止,我的想法是将扩展/混合
Enumerable/Array/ArrayProxy/ObjectProxy
,将底层键值存储存储为
Ember.Array
,并添加
keys
字段来存储对象的键。然后,我可以使用
setUnknownProperty
unknownProperty
来设置/获取基础值,并保持
键的同步。这种做法合理吗

来自服务器的JSON格式

下面是一个示例(用户记录自己的训练数据)请注意,这只是一个示例;格式完全灵活,因此我无法创建余烬数据模型来对这些用户定义的字段进行建模。总的来说,数据可以是任意复杂的JSON(任何程度的散列、数组、原语嵌套)


就我所知,Ember.js的理念是,声明性把手模板非常保守,可以强调在模板中使用较少的逻辑


在上面的例子中,我建议您使用提供JSON作为上下文

你的json有多随意?您是否可以发布一些示例数据,其中显示了您希望支持的不同格式以及您希望如何迭代这些格式?我不是专家,但我认为这会很有帮助。@Aras我刚刚用一些例子更新了这个问题。基本上,数据格式可以是任何格式,因为它都是用户定义的…您应该看看一个新的路由器API:。它允许使用每个辅助对象迭代对象。
{
   "bench_press":[
      {
         "weight":95,
         "repetitions":5,
         "tags":[
            "warmup"
         ]
      },
      {
         "weight":135,
         "repetitions":3,
         "tags":[
            "warmup"
         ]
      },
      {
         "weight":155,
         "repetitions":3,
         "tags":[
            "warmup"
         ]
      },
      {
         "weight":165,
         "repetitions":2,
         "tags":[
            "warmup"
         ]
      },
      {
         "weight":185,
         "repetitions":1,
         "tags":[
            "warmup"
         ]
      },
      {
         "weight":195,
         "repetitions":1,
         "tags":[
            "warmup",
            "overshoot"
         ]
      },
      {
         "weight":190,
         "repetitions":5,
         "tags":[

         ]
      },
      {
         "weight":190,
         "repetitions":5,
         "tags":[

         ]
      },
      {
         "weight":190,
         "repetitions":5,
         "tags":[

         ]
      },
      {
         "weight":190,
         "repetitions":3,
         "tags":[

         ]
      },
      {
         "weight":190,
         "repetitions":2,
         "tags":[
            "negatives"
         ]
      }
   ]
}