当 Ember 遍历对象集合并将它们输出到页面时,例如侧边栏中的链接列表,Ember 为每个元素创建一个上下文。单击该项目时,Ember 将该元素作为上下文传递给方法。
如何随意创建该上下文的虚假版本?我本质上想重用一个当前从 onclick 事件接收上下文的方法。
当 Ember 遍历对象集合并将它们输出到页面时,例如侧边栏中的链接列表,Ember 为每个元素创建一个上下文。单击该项目时,Ember 将该元素作为上下文传递给方法。
如何随意创建该上下文的虚假版本?我本质上想重用一个当前从 onclick 事件接收上下文的方法。
不太确定我是否理解这个问题,但会试一试。我认为你想要完成的事情可以通过直接设置上下文来完成,并且可能应该忽略视图。
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 的优势之一;它可以防止你需要做很多明确的工作。它的目的是让您无需自己编写所有引导代码,由框架完成工作。制作假视图只会使代码复杂化。