首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从模板访问ember js对象

从模板访问ember js对象
EN

Stack Overflow用户
提问于 2014-04-08 06:33:11
回答 1查看 550关注 0票数 0

我有一个ember控制器,如下所示

代码语言:javascript
复制
App.IndexController = Ember.Controller.extend({
   edwin:{
    uno:'hola',
    dos:'hola dos',
    tres:'hola tres'
  }
});

在我的模板中,我需要属性edwin的值,如果我得到的属性是

代码语言:javascript
复制
  <script type="text/x-handlebars" data-template-name="index">
  {{edwin.dos}}
  </script>

它工作得很好,但当我尝试时,我需要从其他变量中选择对象元素

代码语言:javascript
复制
 <script type="text/x-handlebars" data-template-name="index">
  {{edwin['dos']}}
  </script>

代码语言:javascript
复制
 <script type="text/x-handlebars" data-template-name="index">
  {{edwin[myvar]}}
  </script>

我无法显示值this is my jsbin

http://emberjs.jsbin.com/xupuse/1/edit

有什么建议吗

EN

回答 1

Stack Overflow用户

发布于 2014-04-08 08:08:47

最接近的方法是在控制器中创建一些动态属性,基于另一个属性。真正的问题是,如果其他属性发生变化,ember将不知道如何更新它。在下面的例子中,如果edwin.xxxx改变了,计算属性将不知道*,而如果发电机改变了,它将知道(因为它正在观察它)。

代码语言:javascript
复制
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

代码语言:javascript
复制
  dynamoProperty: function(){
    return this.get('edwin.' + this.get('dynamo'));
  }.property('dynamo', 'edwin.{uno,dos,tres}')

http://emberjs.jsbin.com/beziq/2/edit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22924319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档