如何将每个 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 指南,但没有找到答案。
请帮忙。
控制器(Object
、Array
和 itemController
)即将停用。做事的新方法是使用组件。
因此,您将定义一个组件,而不是您的项目控制器:
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。
我想尝试使用:
{{#each content as |product index|}}
{{index}}
{{/each}}
但是我的应用有 itemContoller,像这样:
{{#each product in content itemController='product'}}
如果我这样设置:
{{#each content as |product index| itemController='product'}}
没用!我找到了所有 ember 指南,但没有找到答案。
请帮忙。
控制器(Object
、Array
和 itemController
)即将停用。做事的新方法是使用组件。
因此,您将定义一个组件,而不是您的项目控制器:
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。