2012-07-11 40 views
2

我有两个运行在9.8.1和最新版本下的CollectionView代码的例子。9.8.1版本的工作原理是:http://jsfiddle.net/ethan_selzer/kcjzw/230/。但最新版本不:http://jsfiddle.net/kcjzw/232/最新版本中的Ember.CollectionView API是否有重大更改?

在最新版本中,Ember.CollectionView API是否存在重大更改?或者,CollectionView的当前版本有问题吗?

感谢, 伊桑

+0

我想你应该问[问题](https://github.com/emberjs/ember。 js/issues?labels = question&page = 1&state = open)直接在存储库问题列表中,并从开发人员处获得答案。 – MilkyWayJoe 2012-07-11 16:23:20

+1

感谢MilkyWayJoe。我按照你的建议在Ember回购中提交了这个问题。 – 2012-07-11 17:39:27

+1

Kristofor Selden在官方存储库问题跟踪器上回答了此问题。以下是他的指导:默认上下文已从视图更改为控制器。你可以通过绑定来改变上下文,就像这样http://jsfiddle.net/krisselden/6fAHZ/ – 2012-07-11 20:10:14

回答

5

你可以做什么Kristofor塞尔登在这个小提琴http://jsfiddle.net/krisselden/6fAHZ/(在itemViewClasscontent数组绑定)建议,或者你可以如下做到这一点:

小提琴http://jsfiddle.net/ppanagi/WhGjR/

App = Ember.Application.create(); 

App.collectionView = Ember.CollectionView.create({ 

    content: [ 
     { key: 'value one' }, 
     { key: 'value two' } 
    ], 

    itemViewClass: Ember.View.extend({ 
     template: Ember.Handlebars.compile('{{view.content.key}}') 
    }) 
}); 

App.collectionView.append();​ 

模板的默认上下文现在是控制器变量,所以{{foo}}将返回控制器变量foo的值。如果您需要查看的bar变量的值,请使用{{view.bar}}


追问:还有一种方法可以更改上下文是使用{{with}}

App.collectionView = Ember.CollectionView.create({ 
    template: Ember.Handlebars.compile('{{#with view}} {{content.key}} {{/with}}') 
}); 
+0

谢谢扎克。绝对是一个宝贵的贡献。 – 2012-07-12 03:15:26

相关问题