在运行时更改Ember.ListView的高度和宽度

时间:2014-02-11 21:23:42

标签: ember.js

根据README,我应该可以更改Ember.ListView的宽度和高度,但我找不到让它工作的方法。

当我放大ListView的尺寸时,我希望创建新项目并将其添加到列表中,但不会发生。

有没有人有这方面的工作示例?

更新:

有关代码示例,请参阅此fiddle

1 个答案:

答案 0 :(得分:1)

我解决了......

有关更新的示例,请参阅此fiddle

我最初在didInsertElement上定义了一个ListView方法来绑定窗口的resize事件并更新ListItem的宽度和高度,但这样我显然会覆盖ListItem 1}}自己的didInsertElement方法:

  App.ListView = Ember.ListView.extend({
      height: 500,
      width: 500,
      elementWidth: 80,
      rowHeight: 20,
      itemViewClass: Ember.ListItemView.extend({
          templateName: 'row_item'
      }),
      adjustLayout: function(w, h) {
          console.log(w, h);
          this.set('width', w);
          this.set('height', h);
      },
      didInsertElement: function() {
          view = this;
          $(window).resize(function() {
              width = $('body').width();
              height = $('body').height();
              view.adjustLayout(width, height);
          });
      }

使用.on('didInsertElement')代码正在运行:

  App.ListView = Ember.ListView.extend({
      height: 500,
      width: 500,
      elementWidth: 80,
      rowHeight: 20,
      itemViewClass: Ember.ListItemView.extend({
          templateName: 'row_item'
      }),
      adjustLayout: function(w, h) {
          console.log(w, h);
          this.set('width', w);
          this.set('height', h);
      },
      observeResize: function() {
          view = this;
          $(window).resize(function() {
              width = $('body').width();
              height = $('body').height();
              view.adjustLayout(width, height);
          });
      }.on('didInsertElement')