Javascript angular js ng if未从异步函数获取返回值

Javascript angular js ng if未从异步函数获取返回值,javascript,angularjs,Javascript,Angularjs,我正在评估ng中的函数,以了解用户是否具有执行操作的权限。问题是,要求值的函数调用后端,显然在ng if旁边无法正常工作,因为它打印的是空对象,而不是函数返回的结果 我将结果显示到html中,以了解函数响应的内容: {{organizationController.isAllowedToInvite ()}} 这给我打印了一个空对象{} 这是我正在评估的功能: self.isAllowedToInvite = () => { organizationRoleService.

我正在评估ng中的函数,以了解用户是否具有执行操作的权限。问题是,要求值的函数调用后端,显然在ng if旁边无法正常工作,因为它打印的是空对象,而不是函数返回的结果

我将结果显示到html中,以了解函数响应的内容:

{{organizationController.isAllowedToInvite ()}}
这给我打印了一个空对象{}

这是我正在评估的功能:

self.isAllowedToInvite = () => {

      organizationRoleService.getUserPermissions(self.organizationId)
        .then((response) => {
          const userPermissions = response.data;

          if (userPermissions && userPermissions.organizationPermissions >= 4){
            return true;
          }
          return false;
        }, (error) => {
          console.log(error);
        });
    };
这个返回是真是假,它本身工作得很好

为什么在html中打印时不能显示函数的结果?因为它没有显示true/false,而是显示一个空对象{}

我想让它告诉我是真是假,这样我就可以在ng中评估它,如果正确的话

这是我的ng,如果它显然不起作用,因为它有一个{}值

ng-if="organizationController.isAllowedToInvite()"

您的方法中有一个异步操作,您不能静态检查if中的条件。您应该在控制器实例化上调用该方法,然后在满足所有条件的情况下使用设置为true的标志,并在模板中检查该标志

self.isAllowedToInvite = () => {
      self.isAllowed = false;
      organizationRoleService.getUserPermissions(self.organizationId)
        .then((response) => {
          const userPermissions = response.data;

          if (userPermissions && userPermissions.organizationPermissions >= 4){
            self.isAllowed = true;
          }
        }, (error) => {
          console.log(error);
        });
    };

self.isAllowedToInvite();
在你的模板中

ng-if="organizationController.isAllowed"

您的方法中有一个异步操作,您不能静态检查if中的条件。您应该在控制器实例化上调用该方法,然后在满足所有条件的情况下使用设置为true的标志,并在模板中检查该标志

self.isAllowedToInvite = () => {
      self.isAllowed = false;
      organizationRoleService.getUserPermissions(self.organizationId)
        .then((response) => {
          const userPermissions = response.data;

          if (userPermissions && userPermissions.organizationPermissions >= 4){
            self.isAllowed = true;
          }
        }, (error) => {
          console.log(error);
        });
    };

self.isAllowedToInvite();
在你的模板中

ng-if="organizationController.isAllowed"
可能的重复可能的重复