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 在ember模板中使用数组表示法获取对象属性_Javascript_Ember.js_Handlebars.js - Fatal编程技术网

Javascript 在ember模板中使用数组表示法获取对象属性

Javascript 在ember模板中使用数组表示法获取对象属性,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,只是尝试一下,但不知道怎么做 场景:-我试图呈现一个包含配置数据和视图数据的页面,因此基本上我的模板在配置数据上循环以呈现页面,并从视图数据中获取值以显示 所以我的模型有点像 model:{'confData':[{'displayName':'value1','fieldName':'Field1'}, {repeat similar object} ], 'viewData':{'Field1':

只是尝试一下,但不知道怎么做

场景:-我试图呈现一个包含配置数据和视图数据的页面,因此基本上我的模板在配置数据上循环以呈现页面,并从视图数据中获取值以显示

所以我的模型有点像

 model:{'confData':[{'displayName':'value1','fieldName':'Field1'},
                    {repeat similar object}
                   ],
        'viewData':{'Field1':'value1','Field2':'value2',....}
        }
现在,在模板中,我尝试渲染如下:

{{#each confData}}
  this.displayName {{input type='text' value=viewData[this.fieldName] }}
{{/each}}
但它不接受。任何关于我如何处理这类问题的建议

PS:实际应用中的confdata和view数据将是api调用,我不能更改。 我看到了这样的事情,但当我试图改变,因为它失败了


谢谢。

单靠车把是无法满足您的需求的。请记住,车把模板没有逻辑,仅用于演示。我的建议是在控制器中设置一个计算属性:

data: function() {
    var confData = this.get('confData');
    var viewData = this.get('viewData');

    return confData.map(function(data) {
        return {
            displayName: data.displayName,
            value: viewData[data.filedName]
        };
    });
}.property('confData.[]', 'viewData')
然后在模板中:

{{#each data}}
    {{displayName}} {{input type='text' value=value}}
{{/each}}

你不能在模板中使用
这个
。@CodeJack,但我用过了,它成功了。下面是经过修改的示例@CodeJack
这个
肯定可以在模板中使用。不过,它并不像在JS中那样引用相同的东西。在模板中,它指的是当前上下文(可以使用块帮助器进行更改)。^是的,这就是我的意思。。