我正在制作一个非常简单的 Ember APP。为了我自己的理智,我更喜欢在 EmberViews 中通过 jQuery 执行必要的动画和简单的 dom 事件,例如鼠标悬停/单击。
假设我有这个:
App.SomeView = Ember.View.extend({
didInsertElement:function(){
this.$(element).hover(function(){
$(anotherElement).toggle();
});
}
});
我的模板是这样的:
<script type="text/javascript" data-template-name="routeName">
{{#view SomeView}}
<button {{action 'something' this}}> </button>
<element></element>
{{#if condition}}
<anotherElement></anotherElement>
{{/if}}
{{/view}}
</script>
我的控制器相应地支持这样的动作“某事”:
App.SomeController = Ember.Controller.extend({
condition:false,
actions:{
something:function(){
this.set('condition',true);
}
}
});
一切都很好,但我想要“某事”操作做的是在我的视图中触发“ didInsertElement ”事件,以便切换“ anotherElement”可见性,而无需我再次写下该代码。
这有道理吗?我尝试使用'observables',但无法让它们工作。
或者,如果有更好的方法来做到这一点,这些也是受欢迎的。