Ember.js 如何将属性添加到EmberJS arrayController

Ember.js 如何将属性添加到EmberJS arrayController,ember.js,Ember.js,如何向arrayController中的每个项添加控制器属性 例如,如果我将属性命名为“isExpanded”,我希望能够在模板中执行以下操作: {{#each controller}} {{#if isExpanded}} expanded content {{else}} non-expanded content {{/if}} {{/each}} 请注意,我不能在实际应用程序中使用ObjectController;请参阅下面King

如何向arrayController中的每个项添加控制器属性

例如,如果我将属性命名为“isExpanded”,我希望能够在模板中执行以下操作:

{{#each controller}}
    {{#if isExpanded}}
        expanded content
    {{else}}
        non-expanded content
    {{/if}}
{{/each}}

请注意,我不能在实际应用程序中使用ObjectController;请参阅下面Kingpin2回复后的我的评论。

使用项目控制器,并将属性添加到项目控制器。它是一个控制器,将用于控制器列表中的每个项目

App.ColorsController = Em.ArrayController.extend({
  itemController: 'color'
});

App.ColorController = Em.ObjectController.extend({
  isExpanded: false
});

若您谈论的是isExpanded的arraycontroller范围,那个么它也很简单:

{{{#控制器中的每个项目}
{{{#if controller.isExpanded}
  • 颜色:{item.Color}和类:{{item.Class}
  • {{else}
  • 颜色:{{item.Color}
  • {{/if} {{/每个}} App.IndexController=Em.ArrayController.extend({ isExpanded:错, });

    最后一点注意,当您只说
    {{each controller}}
    时,您正在将作用域从作用域中的控制器更改为作用域中的项,如果您想访问控制器属性,则需要使用
    controller.isExpanded
    来限定属性,并将属性添加到项目控制器。它是一个控制器,将用于控制器列表中的每个项目

    App.ColorsController = Em.ArrayController.extend({
      itemController: 'color'
    });
    
    App.ColorController = Em.ObjectController.extend({
      isExpanded: false
    });
    

    若您谈论的是isExpanded的arraycontroller范围,那个么它也很简单:

    {{{#控制器中的每个项目}
    {{{#if controller.isExpanded}
    
  • 颜色:{item.Color}和类:{{item.Class}
  • {{else}
  • 颜色:{{item.Color}
  • {{/if} {{/每个}} App.IndexController=Em.ArrayController.extend({ isExpanded:错, });

    最后一点注意,当您只说
    {{each controller}}
    时,您正在将作用域从作用域中的控制器更改为作用域中的项,如果您想访问控制器属性,则需要在我的实际应用程序中使用
    controller.isExpanded
    限定属性,我需要一个阵列控制器。arraycontroller与具有子例程的父管线相关联。因此,根据我在原始帖子中的示例,我想使用“isExpanded”控制器属性来决定是否扩展arraycontroller中的每个数组成员。我没有说不使用数组控制器,我说的是也使用项目控制器。iExpanded住在哪里?它位于控制器中的每个项上,还是控制所有项是否存在?我在上面添加了另一个示例,它位于数组控制器上。我尝试将属性添加到关联的itemController中,但仍然无法在每个块中访问它。我推测我没有使用正确的语法。仅仅使用{{isExpanded}}不起作用。我还尝试了{{controlname.isExpanded},但也没有成功。正确的语法是什么?此外,您可以在每个循环周围添加一个if语句,只需创建两个循环。不,在我的实际应用程序中,我需要一个数组控制器。arraycontroller与具有子例程的父管线相关联。因此,根据我在原始帖子中的示例,我想使用“isExpanded”控制器属性来决定是否扩展arraycontroller中的每个数组成员。我没有说不使用数组控制器,我说的是也使用项目控制器。iExpanded住在哪里?它位于控制器中的每个项上,还是控制所有项是否存在?我在上面添加了另一个示例,它位于数组控制器上。我尝试将属性添加到关联的itemController中,但仍然无法在每个块中访问它。我推测我没有使用正确的语法。仅仅使用{{isExpanded}}不起作用。我还尝试了{{controlname.isExpanded},但也没有成功。正确的语法是什么?此外,您可以在每个循环周围添加一个if语句,只需创建两个循环。