如何将每个 itemController 设置为 (ember 1.11 beta3)?

How to set itemController in each as (ember 1.11 beta3)?

我想尝试使用:

{{#each content as |product index|}}
  {{index}}
{{/each}}

但是我的应用有 itemContoller,像这样:

{{#each product in content itemController='product'}}

如果我这样设置:

{{#each content as |product index| itemController='product'}}

没用!我找到了所有 ember 指南,但没有找到答案。

请帮忙。

控制器(ObjectArrayitemController)即将停用。做事的新方法是使用组件。

因此,您将定义一个组件,而不是您的项目控制器:

App.MyProductComponent = Ember.Component.extend({
  myIndex: function(){
    return this.get('passedIndex') + 1;
  }.property('passedIndex')
});

然后,在您的 #each 助手中,您可以按如下方式使用它:

<script type="text/x-handlebars" data-template-name="index">
  <ul>
    {{#each model as |product index|}}
      {{ my-product passedIndex=index product=product }}
    {{/each}}
  </ul>
</script>

工作解决方案here

查看以下 link 并搜索 itemController - https://github.com/emberjs/rfcs/pull/15

真的吗?我的意思是,在很多情况下,我认为创建一个组件来显示基于控制器模型的 属性(s) 的计算值会有点矫枉过正......如果我只想要一个 string(我不需要 ember 为每个组件添加的 <div> 东西)。

然后创建助手?哇哦

@user3443096,

如果您不希望 ember 插入 div 标签,请使用 tagName: "" 属性,如下所示:

App.InvoiceItemsComponent = Ember.Component.extend({
tagName: '' 
});

现在,将不会插入组件周围的 divs。