我有一个ember控制器,如下所示
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>我无法显示值this is my jsbin
http://emberjs.jsbin.com/xupuse/1/edit
有什么建议吗
发布于 2014-04-08 08:08:47
最接近的方法是在控制器中创建一些动态属性,基于另一个属性。真正的问题是,如果其他属性发生变化,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}')http://emberjs.jsbin.com/beziq/2/edit
https://stackoverflow.com/questions/22924319
复制相似问题