Ember:当动作发生时如何访问元素?

时间:2014-03-21 17:30:59

标签: ember.js ember.js-view

我是Ember的新手,我不知道如何按照Ember的方式做事,所以我转向你。

我的问题:
我有一个侧边栏,我为它创建了一个View。我现在侧边栏上有两个按钮。我为其上的每个按钮添加了action。我不确定我是应该在控制器上还是在视图上处理它。我想点击其中一个按钮,插入一个新视图,打开一个弹出菜单,还有一个按钮,调用该动作保持选定状态。

我不太清楚如何做到这一点。我尝试使用操作来定位视图,但我无法访问目标元素,或者至少我不知道如何访问它(尝试this.$())。

您建议采用什么方式?

1 个答案:

答案 0 :(得分:1)

用户'行动'使用ControllerRoute上的方法处理。你应该把它们放在actions散列中:

App.MyController = Ember.ObjectController.extend({
    actions: {
        doSomething: function() {
            // do it here
        }
    }
});

Ember操纵DOM并根据资源和路径自动插入视图。如果您不想使用路由器,可以手动控制视图层次结构,但我建议您在尝试手动视图之前更熟悉Ember路由。

如果我是你,我会创建一个处理按钮的Component。您将在didInsertElement回调中引用DOM元素:http://emberjs.com/api/classes/Ember.Component.html#event_didInsertElement