【发布时间】:2015-11-17 12:12:18
【问题描述】:
我正在开发一个角度控制器。出于某种原因,有一个 If 语句给了我一个问题,是的,一个 if 语句。
代码如下:
$scope.new = function(logoFile) {
if($scope.comprobarCampoDesc() && $scope.comprobarCampoFecha() && $scope.comprobarCampoName() )
{
//program logic
}
还有其他的代码:
$scope.comprobarCampoName = function(e) {
//program logic
return bol;
};
$scope.comprobarCampoDesc = function(e) {
//program logic
return bol;
};
$scope.comprobarCampoFecha = function(e) {
//program logic
return bol;
};
好的,出于任何我无法识别的原因,if 语句仅检查 3 种方法中的 2 种,具体取决于顺序。在这种具体情况下,它忽略了“$scope.comprobarCampoName”,但如果我更改顺序,其他方法将不起作用。
感谢您的帮助。 问候。
【问题讨论】:
-
它是否总是检查 3 个方法中的 2 个,或者仅在 3 个方法中有 2 个返回
true时检查? -
你必须知道
&&运算符仅在之前的操作数计算为真或等效时才计算下一个操作数(在你的情况下为functions)。 -
这很奇怪,因为所有的操作数都是假的,而且总是执行其中的 2 个。无论如何感谢您的帮助。最后我将这三种方法合二为一,以便在 if 语句中只调用一次。
标签: javascript angularjs if-statement and-operator