$scope.input.opening_hours = place.opening_hours && place.opening_hours.weekday_text ? place.opening_hours.weekday_text : '';



  未捕获的TypeError:无法读取的属性'weekday_text'
  未定义(...)


if ( place.opening_hours && place.opening_hours.weekday_text ) {
    $scope.input.opening_hours = place.opening_hours.weekday_text;
} else {
    $scope.input.opening_hours = '';
}


我正在尝试制作此if语句的三元版本,但出现上述错误。什么是将其简化为简单语句的最佳方法。

最佳答案

正如我在评论中告诉您的那样,您需要添加括号:

$scope.input.opening_hours = (place.opening_hours && place.opening_hours.weekday_text) ? place.opening_hours.weekday_text : '';


您可以改善:

$scope.input.opening_hours = ((place.opening_hours && place.opening_hours.weekday_text) ? place.opening_hours.weekday_text : '');


后者确保将首先执行内部括号。就像数学一样,内部圆括号需要在外部圆括号之前执行。

关于javascript - JavaScript三元,如果x && y else,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40660786/

10-12 00:02