假设我有帐户、项目和任务的emberjs 模型/控制器/视图,并且我想通过帐户来确定对项目和任务的访问范围,我该如何在 emberjs 中做到这一点。我正在考虑使用“init”,但在设置所有其他属性后调用“init 函数”,所以我不知道它是否仍然能够获取 currentUser 或创建默认 currentUser 并将其与每个 ember 关联在App 命名空间中创建的对象实例。
在 emberjs 中,如果我有这个,例如:
App = Ember.Application.create({
init: function() {
this._super();
this.setCurrentUser();
//console.log(this.get("setCurrentUser")
},
setCurrentUser: function(json) {
this.store.load(this.User, json);
this.set('currentUser', this.User.find(json['id']));
}
});
上面的 emberjs 代码是否意味着每当访问 App 命名空间的任何部分(例如 App.project)时,都会首先查找 currentUser ,从而确保项目的范围为 User。
为了更清楚,例如在 rails 中,我将以这种方式进行范围访问:
#account-scope in Rails?
class ApplicationController < ActionController::Base
def current_account
@current_account ||= current_user && current_user.account
end
end
#An imagined ProjectsController showing scoped access of project through account
@projects = current_account.projects
@project = current_account.projects.find(params[:id])
感谢您的洞察力。