我正在尝试将两个表格绑定(bind)在一起,以便它们的元素的宽度和高度相同。不幸的是,每当我测量源表的宽度/高度时,我总是在浏览器更改单元格以匹配数据之前得到一个中间值。如果我可以从 jquery 的宽度和高度方法创建一个计算属性,那就太好了。像这样的东西:
width: ( ->
@$().width()
).property('@$().width()')
这可能吗?似乎我应该能够在运行循环中的某处调用 jquery,与宽度的最后一个值进行比较,如果它们不同则发送 elementDidChange。但是,我不知道该怎么做 ;)
谢谢!
最佳答案
不,你不能这样附加它。
您可以附加到 View 上的事件列表。
http://emberjs.com/guides/understanding-ember/the-view-layer/#toc_adding-new-events
在 didInsertElement
上设置宽度,您也可以在 afterRender
上执行此操作,直到所有内容都呈现给您合适的尺寸后才运行。
App.FooView = Em.View.extend({
setupWidth: function(){
var el = this.$(),
self = this;
this.set('width', self.width());
Em.run.scheduleOnce('afterRender', function(){
self.set('width', self.width());
});
}.on('didInsertElement')
});
此外,如果窗口发生变化,您可以挂接一个额外的事件。
关于jquery - 我可以从 jquery 函数创建 ember 计算属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153071/