1

假设我有帐户、项目和任务的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])

感谢您的洞察力。

4

0 回答 0