0

I'm getting to grips with Ember.js but could do with some tips...

I'd like to create a view that is a div with a ul nested within it. Before rendering, I'd like to see how wide the parent div is and calculate how many li's to add to the ul with a for loop.

Can you help suggest the best way to do this please as I'm struggling!

Cheers!

4

2 回答 2

2

一种确定widtha 的view方法是连接到didInsertElement

App.IndexView = Ember.View.extend({
  willInsertElement: function() {
    console.log(this.$().css('width'));
  },
  didInsertElement: function() {
    console.log(this.$().css('width'));
  }
});

因为您的用例willInsertElement更相关,因为它会在之前被调用,didInsertElementwidth此时尚未计算。

这是一个可以使用的示例jsbin

希望能帮助到你。

于 2013-08-03T18:03:05.143 回答
1

不太了解您的代码,这是一个非常快速且基本的示例。希望它会给你一些指导,你可以适应它。

这个想法是使用didInsertElement视图上的事件,当它被插入到 DOM 时调用,然后你可以得到该视图的 DIV 的 JQuery 对象this.$()

App.SomeKindOfView = Ember.View.extend({
  //-snip-
  didInsertElement: function()
  {
    this._super();
    var parentWidth = this.$().parents('div').width();
    //do some fancy caculation with parentWidth
    //then save the result on the View or Controller...
  }
  //-snip-
});

在模板中你可以有类似的东西(因为它默认由 DIV 包装:

<ul>
  {{#each item in controller}}
    <li>{{item.someContent}}</li>
  {{/each}}
</ul>
于 2013-08-03T18:02:36.360 回答