返回已解析的$Resource

Return a resolved $Resource

本文关键字:Resource 返回      更新时间:2023-09-26

我对AngularJS和JavaScript中的promise有点陌生。我有一个.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作为返回值,而不是所需的布尔值。

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

是的-由于您的第一份退货声明在Organization.get 上,您将收到退货承诺

然而,当这个承诺得到解决时,您将得到您所期望的布尔值。

我有点怀疑你,但如果你试图阻止页面加载,直到承诺完成,你应该看看控制器中的解析功能。

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