在Ember.js中创建一个虚假的“上下文”

时间:2012-06-12 03:21:07

标签: ember.js

当Ember迭代一组对象并将它们输出到一个页面时,比如边栏中的链接列表,Ember会为每个元素创建一个上下文。单击该项时,Ember将该元素作为上下文传递给方法。

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

1 个答案:

答案 0 :(得分: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'对象)。观察者会选择它并照顾其余部分。能够观察变化的价值并相应地更新背景是其中的优势之一;它可以防止你需要做很多明确的工作。它旨在让您不必自己编写所有引导代码,框架完成工作。制作虚假视图只会使代码复杂化。