如果我只是运行ember new testlistview
,然后是templates/index.hbs
:
{{#collection Ember.ListView contentBinding="controller" height=500 rowHeight=50 width=500}}
{{name}}
{{/collection}}
和routes/index.js
:
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
var items = [];
for (var i = 0; i < 10000; i++) {
items.push({name: "Item " + i});
}
return items;
}
});
我收到错误:
未捕获错误:断言失败:Ember.ListView必须是Ember.View的子类或实例,而不是
DEBUG: -------------------------------
DEBUG: Ember : 1.8.1
DEBUG: Ember Data : 1.0.0-beta.12
DEBUG: Handlebars : 1.3.0
DEBUG: jQuery : 1.11.2
DEBUG: -------------------------------
有谁知道如何使其发挥作用或提供任何替代方案?
另外,Ember 1.9.1和Handlebars 2.0.0怎么样?
答案 0 :(得分:1)
我刚刚分叉了ember-cli-list-view
和ember-list-view-component
,以使用最新的Ember CLI 0.1.7和Ember 1.9.1,并带有把手2.0.0。
我需要使用Ember ListView的最新主版本。我打算针对ember-cli-list-view包提出一个PR,但与此同时,我的附加组件可以在这里找到: https://github.com/ahacking/ember-cli-list-view
您可以通过将以下内容添加到package.json
:
{
"devDependencies": {
"ember-cli-list-view": "ahacking/ember-cli-list-view#0.0.6-alpha.1"
}
}
然后运行npm install
。
您将无法使用ember generate ...
,因为Ember CLI目前不支持在URL上添加bower软件包。相反,您需要手动将ember-list-view-component
包和zynga卷轴添加到bower.json
:
{
"dependencies": {
"ember-cli-list-view": "ahacking/ember-list-view-component#0.0.6-alpha.1",
"zynga-scroller": "https://raw.github.com/zynga/scroller/master/src/Scroller.js",
"zynga-scroller-animate": "https://raw.github.com/zynga/scroller/master/src/Animate.js"
}
}
然后运行bower install
。
然后,您需要将以下内容添加到Brocfile.js
:
app.import("bower_components/zynga-scroller/index.js");
app.import("bower_components/zynga-scroller-animate/index.js");
如果您已经准确地按照上述说明操作,则可以按如下方式使用Ember ListView和VirtualListView:
// app/views/my-list-view.js
import Ember from 'ember';
// can also use Ember.VirtualListView (for iOS scrolling support)
export default Ember.ListView.extend({
height: 500,
rowHeight: 30,
itemViewClass: Ember.ListItemView.extend({
templateName: "some-item-template"
})
});