我正在接触Ember.js但可以做一些提示......
我想创建一个 div 的视图,其中嵌入了 ul 。在渲染之前,我想看看父 div 有多宽,并计算要添加到 ul 的 ul 的数量for loop。
在我挣扎的时候,你能帮忙建议最好的方法!
干杯!
答案 0 :(得分:2)
确定width
的{{1}}的方法是挂钩view
didInsertElement
对于您的用例,App.IndexView = Ember.View.extend({
willInsertElement: function() {
console.log(this.$().css('width'));
},
didInsertElement: function() {
console.log(this.$().css('width'));
}
});
更具相关性,因为它会在willInsertElement
之前调用,但此时didInsertElement
尚未计算。
以下是一个可以使用的示例jsbin。
希望它有所帮助。
答案 1 :(得分:1)
对您的代码了解不多,这是非常快速和基本的示例。希望它会给你一些指导,你可以适应它。
我们的想法是在视图上使用didInsertElement
事件,在将事件插入DOM时调用该事件,然后您可以使用this.$()
获取该视图的DIV的JQuery对象。 / p>
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>