我有一个如下的余烬控制器
App.IndexController = Ember.Controller.extend({
edwin:{
uno:'hola',
dos:'hola dos',
tres:'hola tres'
}
});
我的模板我需要属性edwin的值,如果我得到属性
<script type="text/x-handlebars" data-template-name="index">
{{edwin.dos}}
</script>
工作正常, 但是当我尝试
时,我需要从其他变量中选择对象元素 <script type="text/x-handlebars" data-template-name="index">
{{edwin['dos']}}
</script>
或
<script type="text/x-handlebars" data-template-name="index">
{{edwin[myvar]}}
</script>
我无法显示该值 这是我的jsbin
http://emberjs.jsbin.com/xupuse/1/edit
任何建议
答案 0 :(得分:1)
你最接近它会在控制器中根据另一个属性创建一些动态属性。真正的问题是,如果其他属性发生变化,则ember不知道如何更新它。在下面的例子中,如果edwin.xxxx改变了计算属性就不会知道*,而如果发电机改变它会知道(因为它正在观察它)。
App.IndexController = Ember.Controller.extend({
edwin:{
uno:'hola',
dos:'hola dos',
tres:'hola tres'
},
dynamo: 'uno',
dynamoProperty: function(){
return this.get('edwin.' + this.get('dynamo'));
}.property('dynamo')
});
http://emberjs.jsbin.com/beziq/1/edit
*我有点躺在这里,你可以在edwin上指定每一个属性,它总是被标记为脏,无论它是否应用于dynamoProperty a la
dynamoProperty: function(){
return this.get('edwin.' + this.get('dynamo'));
}.property('dynamo', 'edwin.{uno,dos,tres}')