改进'检查是否真实'功能

时间:2016-03-31 06:58:14

标签: javascript angularjs

我有一个看起来像这样的对象

$scope.object = {
  Title: 'A title',
  Status: 'Open',
  Responsible: 'John Doe',
  Author: 'Jane Doe',
  Description: 'lorem ipsum dolor sit'
}

现在我想查看当前用户是否有权编辑此项目,以便用户能够编辑,该项目必须

  • 存在(不是空,不成对等)
  • 责任等于$scope.currentUser
  • 状态相同'打开'

如果所有这些都是真的,我们的函数应该返回true,我这样做

$scope.isTrue = function(){

  if($scope.object && $scope.object.Status == 'Open' && $scope.object.Responsible == $scope.currentUser){
    return true;
  }else { return false; }

}

非常直接,但有没有更好的方法来进行这些检查?

2 个答案:

答案 0 :(得分:2)

if语句中的条件已经为true或false,您可以返回该条件。

return ($scope.object && $scope.object.Status == 'Open' && $scope.object.Responsible == $scope.currentUser);

答案 1 :(得分:2)

  1. 将结果转换为布尔值(因此,如果$scope.objectundefined,则结果为false而不是undefined
  2. Making comparisons using ===
  3. 只是声明功能并将其分配到范围(个人偏好)
  4. $scope.isTrue = isTrue;
    
    function isTrue() {
      return Boolean($scope.object && $scope.object.Status === 'Open' && $scope.object.Responsible === $scope.currentUser);
    }