3

当 Ember 遍历对象集合并将它们输出到页面时,例如侧边栏中的链接列表,Ember 为每个元素创建一个上下文。单击该项目时,Ember 将该元素作为上下文传递给方法。

如何随意创建该上下文的虚假版本?我本质上想重用一个当前从 onclick 事件接收上下文的方法。

4

1 回答 1

0

不太确定我是否理解这个问题,但会试一试。我认为你想要完成的事情可以通过直接设置上下文来完成,并且可能应该忽略视图。

clientsArray
....
    loadProjects: function(view){
        this.set('currentClient', view.context);
    },

    _setProject: function(){
        console.log('loading projects');

        var context = this.get('currentClient');
        PM.projectsArray.set('content', []);
        PM.projectsArray.pushObjects(context.get('projects'));
    }.observes('currentClient')
....

然后在您的“addProject”方法中,只需将“currentClient”(在 clientArray 中)设置为新的上下文(您的“project”对象)。观察者会捡起它并处理其余的事情。能够观察变化的值并相应地更新上下文是 ember 的优势之一;它可以防止你需要做很多明确的工作。它的目的是让您无需自己编写所有引导代码,由框架完成工作。制作假视图只会使代码复杂化。

于 2012-08-04T13:59:55.993 回答