我有一组foos,每个foo都有自己的酒吧系列。我希望能够使用路线显示选定的foo,但是foo的条形被列为显示的一部分。
所有这一切都是直截了当的,除了每个栏可能包含一个属性,这意味着我想对它应用不同的样式。所以,我在每个中使用 render 把手助手,就像这样 -
<script type="text/x-handlebars" id="foo">
<div>{{name}}</div>
<div>
<table>
{{#each bar in bars}}
{{render bar bar}}
{{/each}}
</table>
</div>
</script>
,条形模板看起来像这样 -
<script type="text/x-handlebars" data-template-name="bar">
<tr><td>
<div {{bind-attr class="bar.bold:bold"}}>{{bar.name}}</div>
</td></tr>
</script>
问题是我无法弄清楚如何定义控制器。如果模型包含带有粗体属性的条形图,那么上面的方法是有效的,但是如果不是这样的话我需要计算属性呢?
我试过这个变种 -
App.BarController = Ember.ObjectController.extend({
isBold: function(){
return this.get('bold');
}.property('isBold'),});
(相应地修改bind-attr助手),并在返回时放置断点。它永远不会被击中。
我这里有一个jsfiddle(http://jsfiddle.net/martinp999/ZbjH9/7/)。任何意见,将不胜感激。感谢
答案 0 :(得分:1)
使用itemController
按项目持有州是正确的做法。
但要让你的BarController
被选中并使用,因此你的计算属性被调用,你必须在你的itemController
助手上设置{{each}}
属性:
<script type="text/x-handlebars" id="foo">
<div>{{name}}</div>
<div>
<table>
{{#each bar in bars itemController="bar"}}
{{render bar bar}}
{{/each}}
</table>
</div>
</script>
请在此处查看modified and working jsfiddle
希望它有所帮助。
答案 1 :(得分:0)
没有什么可以像控制者或动作一样在控制器中触发你的事件。