Ember.js 使用带有嵌套CollectionView的Ember JS创建键盘

Ember.js 使用带有嵌套CollectionView的Ember JS创建键盘,ember.js,uikeyboard,collectionview,Ember.js,Uikeyboard,Collectionview,编辑:已解决,意外创建而不是扩展余烬视图。见下面的答案 我正在为浏览器中没有本机触摸屏键盘的触摸屏设备创建一个键盘(HP触摸屏上的Google Chrome,但如果我错了,请纠正我。我愿意接受更简单的解决方案。) 我想把键盘分成单独的几行,这样样式就更容易了 keyboardView: Ember.CollectionView.create({ elementId: 'search-keyboard', content: [ [ 'q','w','e','r','

编辑:已解决,意外创建而不是扩展余烬视图。见下面的答案

我正在为浏览器中没有本机触摸屏键盘的触摸屏设备创建一个键盘(HP触摸屏上的Google Chrome,但如果我错了,请纠正我。我愿意接受更简单的解决方案。)

我想把键盘分成单独的几行,这样样式就更容易了

keyboardView: Ember.CollectionView.create({
    elementId: 'search-keyboard',
    content: [
        [ 'q','w','e','r','t','y','u','i','o','p' ],
        [ 'a','s','d','f','g','h','j','k','l' ],
        [ 'z','x','c','v','b','n','m' ],
        [ ' ' ]
    ],
    itemViewClass: Ember.CollectionView.extend({
        tagName: 'ul',
        classNames: [ 'keyboard-row' ],
        itemViewClass: Ember.View.create({
            template: Ember.Handlebars.compile( '{{view.content}}' )
        })
    })
})
当然,我得到了这个错误:

Uncaught Error: assertion failed: itemViewClass must be a subclass of Ember.View, not <Ember.View:ember186> 
未捕获错误:断言失败:itemViewClass必须是Ember.View的子类,而不是
我可以将父视图作为ContainerView使用,但这意味着为子CollectionView复制类名、标记名等


有没有一种方法可以在不重复代码的情况下创建此键盘和键盘行?

哎呀,是在创建余烬视图,而不是扩展…以下工作:

keyboardView: Ember.CollectionView.create({
    elementId: 'search-keyboard',
    content: [
        [ 'q','w','e','r','t','y','u','i','o','p' ],
        [ 'a','s','d','f','g','h','j','k','l' ],
        [ 'z','x','c','v','b','n','m' ],
        [ ' ' ]
    ],
    itemViewClass: Ember.CollectionView.extend({
        tagName: 'ul',
        classNames: [ 'keyboard-row' ],
        itemViewClass: Ember.View.extend({   // extend! don't create!
            template: Ember.Handlebars.compile( '{{view.content}}' )
        })
    })
})

谢谢是的,这个错误现在更有意义了,因为CollectionView是View的一个子类,当它被扩展时,哈哈