我找到了一个脚本(jquery-placeholder)来在IE8中的表单元素上呈现HTML占位符属性。可以使用以下方法轻松调用:
$('input, textarea').placeholder();
由于Ember将渲染这些元素,我需要等到它们被渲染之后再调用这个函数。我可以绑定一个事件吗?也许我可以将它添加到运行循环队列中?
答案 0 :(得分:2)
正如melc已经指出的那样,你应该使用didInsertElement
钩子来实现这种行为。如果您希望通常对所有TextFields或TextArea使用此功能,请考虑使用reopen方法修改/增强余烬默认实现:
Ember.TextField.reopen({
placeHolderFunction : function(){
this.$().placeholder();
}.on('didInsertElement')
});
这将自动调用应用程序中使用的所有Ember.TextField上的占位符方法({{input}}
帮助程序使用此方法)。您可以对Ember.TextArea
执行相同的操作,以便为textarea元素实现此功能。
答案 1 :(得分:0)
操纵DOM的常见位置是view
回调函数中的ember didInsertElement
类。
http://emberjs.com/api/classes/Ember.View.html#event_didInsertElement
用法示例
http://emberjs.jsbin.com/AbebUQin/1/edit
App.Test1View = Ember.View.extend({
didInsertElement:function(){
alert('test1 view inserted');
}
});
App.Test2View = Ember.View.extend({
myFunc:function(){
alert('test2 view inserted');
}.on('didInsertElement')
});