返回已解析的$ Resource

时间:2014-09-19 09:30:09

标签: javascript angularjs angularjs-scope

我是AngularJS的新手,也是JavaScript的承诺。 我有一个.config,它使用提供程序在我正在处理的应用程序中创建菜单。

此提供程序具有已启用的属性,在此已启用的属性中,我想检查用户是否为组织的管理员。仅当用户是管理员时才应显示此菜单项。

一些代码:

PageMenuProvider
    .page('organization', 'dashboard', {
      state: 'organization.dashboard',
      label: 'SW.ORGANIZATION.DASHBOARD.LABEL',
      weight: -60,
      enabled: ['$stateParams', '$rootScope', 'Organization', function ($stateParams, $rootScope, Organization) {
        return Organization.get({ slug: $stateParams.slug }).$promise
          .then(function (organization) {
            return organization.user_role === 'management' || $rootScope.isAdmin
          })
      }]
    })

问题是我得到一个$ promise作为返回值,而不是所需的布尔值。

1 个答案:

答案 0 :(得分:0)

欢迎来到承诺和异步编程的世界!

是的 - 由于您的第一个退货声明在Organization.get

,您将收到退款

但是,当这个承诺结算时,你将获得你期望的布尔值。

我是第二次猜你 - 但如果你试图阻止一个页面加载,直到一个promise完成,你应该看看控制器中的解析功能。

http://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx